なにがどう
ループ文を実行したときにループカウンタがオーバーフローする。
Dim i As Integer
For i = 1 To Worksheets.Count
If Workbooks(fileName).Worksheets(i).name = "foo" Then
Application.DisplayAlerts = False
Workbooks(fileName).Worksheets("foo").Delete
Application.DisplayAlerts = True
End If
Next
原因
変数の初期化漏れ。
ループカウンタiを複数個所で使用したために発生していた。クソオブクソ
修正後
Dim i As Integer
i = 0
For i = 1 To Worksheets.Count
If Workbooks(fileName).Worksheets(i).name = "foo" Then
Application.DisplayAlerts = False
Workbooks(fileName).Worksheets("foo").Delete
Application.DisplayAlerts = True
End If
Next
最終更新:2016年12月22日 11:55