前提・実現したいこと
以前、表題のことを実現するために、「該当のソースコード」の通り作ったのですが
どこかが抜け落ちてしまったため、抽出に失敗します・・・
A列には人物名があり、その人物のデータがB列以降に行で並んでいます。
それを、人物名で抽出し、新規シートを作り、転記して最後にその人物名にシート名を変更するという流れです。
発生している問題・エラーメッセージ
ここを変えろと出ます・・・
'変数の名前に変更 ActiveSheet.Name = SheetNames
実際のシートを見ると、オートフィルタがうまくいっておらず、人物名でフィルタできていないので
見出し列だけが表示されている状態で止まっています。
該当のソースコード
Sub TEST4() 'リストを、配列に格納 Dim Data With Worksheets("Sheet1") Data = .Range(.Range("A1"), .Range("A1").End(xlDown)) End With '重複しないリスト分ループ For i = 1 To UBound(Data, 1) '支店を、フィルタする Worksheets("Sheet1").Range("B1").AutoFilter 2, Data(i, 1) '別シートを追加 Worksheets.Add 'フィルタしたデータを、追加したシートに転記 Worksheets("Sheet1").Range("B1").CurrentRegion.Copy ActiveSheet.Range("A1") '持ってきたデータ内B2の値(名前)を変数に格納 Dim SheetNames SheetNames = Range("B2").Value '変数の名前に変更 ActiveSheet.Name = SheetNames 'フィルタ解除 Worksheets("Sheet1").Range("B1").AutoFilter Next End Sub
試したこと
重複しないリストを作成する方法を検索してみたのですが、同じような記述で実現しているサイトが
見つからず、どうしてこれが成功していたのかわからない状態です・・・
これが間違っているのかなぁと思うのですが他の書き方がわからず・・・
Data = .Range(.Range("A1"), .Range("A1").End(xlDown))
補足情報(FW/ツールのバージョンなど)
office Standard 2016
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/08/10 11:40
2021/08/10 12:57