2016-04-22 17 views
0

VBAコードでワークシートを削除しようとしています。ここでの一般的な考え方は、ワークシートの数が18に達すると、終了ワークシートを削除するということです。ワークシートはコレクションなので、私は試みました:Worksheets.Remove()経由でワークシートを削除する

If Worksheets.Count = 18 Then 
    Worksheets.Remove (Worksheets.Count) 
    End If 

エラーを取得します。何か案は? ありがとう!

答えて

1

警告を最初に無効にしてから、deleteメソッドを使用する必要があります。

Application.DisplayAlerts = False 
Worksheets(Worksheets.Count).Delete 
Application.DisplayAlerts = True 
+0

ありがとうございました。これはなぜですか? –

+0

まず、適切な方法は '削除'ではなく '削除'です。第2に、削除には通常ユーザー確認が必要なので、アラートを無効にしてバイパスする必要があります。重要なアラームを見逃さないようにアラートを再度有効にする必要があります。 – yk11

+0

これは注意して行う必要があります! –

0

これを試してみてください:

Sub WorksheetDelete() 

Application.DisplayAlerts = False 'To avoid display alert 
Do Until ActiveWorkbook.Worksheets.Count>=18 
    ActiveWorkbook.Worksheets(18).Delete 'Delete the 18th worksheet 
Loop 
Application.DisplayAlerts = True  'Turn on the Alerts 

End Sub 
関連する問題