以前の質問で述べたのと同様に、メインフレームから取得したデータに関連するマクロを構築し続けています。
ここで説明したオートフィルター基準に基づくマクロ拡張機能を使用して、多数のシートを生成しています。参考までに、このコードの要約版は次のとおりです。
Sub AddSheets()
Dim RngOne As Range, cell As Range
For Each cell In RngOne
Sheets.Add After:=Sheets(1)
Sheets(2).Select
Sheets(2).Name = cell.Value
Next
End Sub
データセットを処理していると、選択した宛先にエクスポートされた後に生成されたシートをユーザーが削除する方が便利な場合があります。ただし、使いやすさのために、マクロに関連するシートを保持しようとしています。保持枚数はOR
条件上2枚を超えますが、相談の都合上10枚以上まで可能です。私の現在のコードは、このサイトから改作されています。このSO 記事も確認しました。
私のコードは次のとおりです。
Sub DeleteAllButNotedSheets()
Dim IndividualWorkSheet As Worksheet
Application.DisplayAlerts = False
For Each IndividualWorkSheet In ThisWorkbook.Worksheets
If IndividualWorkSheet.Name <> "Sheet1" Or "Criteria" Or "TemplateSheet" Or "TemplateSheet2" Then
IndividualWorkSheet.Delete
End If
Next
Application.DisplayAlerts = True
End Sub
現在、コードは Type Mismatch エラーになります。このエラーのジレンマの修正を求めています。
これに加えて、考えられる条件の数を考慮して、巨大なOR
リストの代わりにリスト、コレクション、または配列 (ループが与えられた場合) を使用できるかどうかを判断しようとしていますが、これは私には不器用に思えます。このリストの問題に関して、修正または開始するためのアドバイスを求めています。