VBA AutoFilter 範囲指定
いつもお世話になっております
過去に
https://okwave.jp/qa/q9707059.html
にてワークシートのデータをオートフィルターをかけて別なワークシートにデータを取り出す方法を教えて頂きました
送られてくる元データが変更になって、A3セルの上のA2セルの上にテキスト文字が入るようになったので、範囲指定を正しく出来るようにする方法を
https://okwave.jp/qa/q9708868.html
にて教えて頂きました
今回、https://okwave.jp/qa/q9707059.htmlで教えて頂いたワークシートのコードを実行させると元データが変更になったデータを利用すると、A1セルまで含まれた範囲がAutoFilter の領域と判断される為正しい結果となりません
添付画像のワークシートで
Sub test9()
Worksheets("Sheet1").Range(Cells(3, "A"), Cells(Range("A3").CurrentRegion.Rows.Count, Range("A3").CurrentRegion.Columns.Count)) _
.AutoFilter Field:=2, Criteria1:=Cells(5, "G").Value
End Sub
を実行させれば、"秋田”でフィルターがきちんとかけれらた状態になります
そこで教えて頂いたコードを下記に変更して実行させてみたのですが
Dim i As Long
With Worksheets("Sheet1")
.Range("B4", .Range("B4").End(xlDown)).Copy
.Range("G4").PasteSpecial (xlPasteAll)
.Range("G4", .Range("G4").End(xlDown)).RemoveDuplicates Columns:=Array(1), Header:=xlNo
For i = 4 To .Cells(Rows.Count, "G").End(xlUp).Row
Worksheets.Add After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = .Cells(i, "G").Value
.Range(Cells(3, "A"), Cells(Range("A3").CurrentRegion.Rows.Count, Range("A3").CurrentRegion.Columns.Count)) _
.AutoFilter Field:=2, Criteria1:=.Cells(i, "G").Value
.Cells(3, 1).CurrentRegion.Copy Destination:=Worksheets(.Cells(i, "G").Value).Cells(3, 1)
.AutoFilterMode = False
Next
.Range(Cells(3, "A"), Cells(Range("A3").CurrentRegion.Rows.Count, Range("A3").CurrentRegion.Columns.Count)) _
.AutoFilter Field:=2, Criteria1:=.Cells(i, "G").Value
部分で
実行時エラー'1004' アプリケーション定義またはオブジェクト定義のエラーです
になってしまいます
元データがA2セルにテキスト文字が入った状態でも正常にコード動作させるにはどのようにしたらいいのでしょうか
よろしくお願い致します
お礼
範囲指定だとCells毎にシートの指定がいるのですね。 とてもよくわかりました。 ありがとうございます。