オートフィルタで抽出されたデータを各シートに振り分けて反映させたい。
①[機器一覧.xls]-[マスターファイル]シートを店舗名でオートフィルタ(手動)
②次に、抽出されたデータを[種類]・[科目]で振り分け
[機器一覧.xls]-[マスターファイル]シート
3 機器 店舗 種類 科目
4 55-110 岩手 小型
5 54-001 岩手 大型
6 56-086 横浜 機器
7 51-876 岩手 大型 機器
↓
[機器一覧.xls]-[マスターファイル]シート
3 機器 店舗 種類 科目
4 55-110 岩手 小型
5 54-001 岩手 大型
7 51-876 岩手 大型 機器
※オートフィルターで抽出されたデータを各シートに反映
□□□実行後イメージ□□□
例.[機器一覧.xls]-[大型]シート
2 54-001
3 51-876
例.[機器一覧.xls]-[小型]シート
5 55-110
例.[機器一覧.xls]-[機器]シート
2 51-876
※各シートへの反映は、セル指定したい。
マクロでの回答は、ソースも記述願います。
どうか宜しくお願いします。
フィルタをかけた状態で実行します。
セルは それぞれ 指定できますので 変更してください。
Sub main() 'マスターファイルシートの開始位置 s1 = 1 '[大型]シートのセル指定 例 A列 2行目から s2 = "A" r2 = 2 '[小型]シートのセル指定 例 A列 5行目から s3 = "A" r3 = 5 '[機器]シートのセル指定 例 A列 2行目から s4 = "A" r4 = 2 If Worksheets("マスターファイル").Cells(4, s1) = "" Then End For a = 4 To Worksheets("マスターファイル").Cells(4, s1).End(xlDown).Row If Not Worksheets("マスターファイル").Rows(a).Hidden Then If Worksheets("マスターファイル").Cells(a, s1 + 2) = "大型" Then Worksheets("大型").Cells(r2, s2) = Worksheets("マスターファイル").Cells(a, s1) r2 = r2 + 1 End If If Worksheets("マスターファイル").Cells(a, s1 + 2) = "小型" Then Worksheets("小型").Cells(r3, s3) = Worksheets("マスターファイル").Cells(a, s1) r3 = r3 + 1 End If If Worksheets("マスターファイル").Cells(a, s1 + 3) = "機器" Then Worksheets("機器").Cells(r4, s4) = Worksheets("マスターファイル").Cells(a, s1) r4 = r4 + 1 End If End If Next a End Sub
これがお勧めです
Sub main()
'マスターファイルシートの開始位置
s1 = 1
'[大型]シートのセル指定 例 A列 2行目から
s2 = "A"
r2 = 2
'[小型]シートのセル指定 例 A列 5行目から
s3 = "A"
r3 = 5
'[機器]シートのセル指定 例 A列 2行目から
s4 = "A"
r4 = 2
If Worksheets("マスターファイル").Cells(4, s1) = "" Then End
For a = 4 To Worksheets("マスターファイル").Cells(4, s1).End(xlDown).Row
If Not Worksheets("マスターファイル").Rows(a).Hidden Then
If Worksheets("マスターファイル").Cells(a, s1 + 2) = "大型" Then
Worksheets("大型").Cells(r2, s2) = Worksheets("マスターファイル").Cells(a, s1)
r2 = r2 + 1
End If
If Worksheets("マスターファイル").Cells(a, s1 + 2) = "小型" Then
Worksheets("小型").Cells(r3, s3) = Worksheets("マスターファイル").Cells(a, s1)
r3 = r3 + 1
End If
If Worksheets("マスターファイル").Cells(a, s1 + 3) = "機器" Then
Worksheets("機器").Cells(r4, s4) = Worksheets("マスターファイル").Cells(a, s1)
r4 = r4 + 1
です