VBA処理中にシートをチェックして
存在する場合は中身を空白に
存在しない場合はシートを1枚だけ新規作成をする
と言う処理をしたいです。
存在する場合は問題なく処理されるのですが
存在しない場合のシートの新規作成が1枚ではなく2枚出てしまいます。
※ブックを開いた時点、VBA処理前はブック内にシートが2つあります。
For Each sheetAB In ThisWorkbook.Worksheets
If sheetAB.Name = checksheet Then
Application.DisplayAlerts = False
Worksheets(checksheet).Cells.Clear
Application.DisplayAlerts = True
Else
workSheets.Add After:=Worksheets(Worksheets.Count), Count:=1
End If
※countを2にすればシートの新規作成が4枚になります
恐らくですがForEach-IFの所で開いているブックの全てのシートが選択されてしまって
addで新規作成をするとシート2枚選択中*1枚作成→シート合計2枚新規作成
という流れになってしまっていると思っているのですが
シート2枚選択中の状態を解除する方法が見つからず
シートを1枚だけ出したいのに出せない状況です。
elseのすぐ下、addの間に
active、select、setを使ってシート2枚選択中の解除を試みましたが
解除されていないようで結果変わらずシート合計2枚新規作成されます。
新規作成を1枚だけにする方法
もしくは、複数枚選択中のシートを解除する方法のどちらか
知恵をお借りできますでしょうか
回答2件
あなたの回答
tips
プレビュー