我正在尝试将多个宏组合成一个。
可能并不总是有相同数量的工作表,因此并非所有宏都是必需的。 因此,我试图在执行前检查“如果工作表存在”。但不幸的是,它似乎又回到了已经执行的第二个宏,并且因此失败了。
Sub Add_ALL_Totals()
Dim ws As Worksheet
Add_OPT1_Totals_inc_WFE
For Each ws In Worksheets
If ws.Name Like "*OPT2*" Then
Add_OPT2_Totals ' run this macro
End If
If ws.Name Like "*OPT3*" Then
Add_OPT3_Totals ' run this macro
End If
If ws.Name Like "*OPT4*" Then
Add_OPT4_Totals ' run this macro
End If
If ws.Name Like "*OPT5*" Then
Add_OPT5_Totals ' run this macro
End If
If ws.Name Like "*OPT6*" Then
Add_OPT6_Totals ' run this macro
End If
Next ws
End Sub
有什么想法吗?
答案 0 :(得分:1)
您可以实现一个功能来检查工作表是否存在:
Public Function SheetExists(ByVal SheetName As String) As Boolean
Dim i As Integer
With ActiveWorkbook
For i = 1 To Sheets.Count
If Sheets(i).Name = SheetName Then
SheetExists = True
Exit Function
End If
Next
SheetExists = False
End With
End Function