我创建了一个for循环来从工作簿中删除工作表。代码块添加工作簿并计算该工作簿中的工作表数量,默认情况下通常为三(3)。因此,根据IF函数,它应该删除sheet2和sheet 3.但是,它会在删除sheet2后出现运行时错误。我是VBA的初学者,我不知道该怎么做。请帮忙。非常感谢你。 (注意:如果c等于2,它可以正常工作并删除sheet3。只有当c等于1时才会出错。)
c= 1
Dim Wbk As Workbook
Set Wbk = Workbooks.Add
i = Wbk.Worksheets.count = 3
Application.DisplayAlerts = False
If c < i Then
For j = (c + 1) To 3
Sheets(j).Delete
Next j
ElseIf c > i Then
Wbk.Worksheets.Add after:=Wbk.Worksheets("sheet3"), count:=(c - i)
Else: End If
答案 0 :(得分:0)
表单的索引从1开始。因此,3张表的工作簿为1-3。这里的问题是,一旦你删除第二张(2),你现在只有1-2(1是sheet1,2是sheet3)。因此,当您递增到3时,不再有索引为3的工作表。
你想要更像这样的东西。
c= 1
Dim Wbk As Workbook
Set Wbk = Workbooks.Add
Dim i As Integer
Application.DisplayAlerts = False
For i = Wbk.Worksheets.count To 1 step -1
Sheets(i).Delete
Next iIndex