我开发了一个 excel 工作簿,其中包含宏,这些宏会将数据从“数据摘要”工作表复制到重复模板(为每个数据行创建一个模板),然后根据设定的标准格式化每个工作表。我已经完成了这项工作(请参阅下面的格式化代码),但最终会将格式应用于所有工作表,我不希望将其应用于前两个主要工作表(原始模板和数据摘要)。有人知道我该如何修改代码,以便格式化从第 3 个工作表(Sheet3)开始吗?
下面是我正在使用的代码(我删除了代码中实际格式化步骤的部分,因为这些步骤太多了,而且与问题无关,所以不想浪费大家的时间 - 如果有帮助的话我很乐意发送):
Sub FormatData1()
Dim xSh As Worksheet
Application.ScreenUpdating = False
For Each xSh In Worksheets
xSh.Select
Call FormatData2
Next
Application.ScreenUpdating = True
End Sub
Sub FormatData2()
' REFORMATTING ELEMENTS ARE FOUND HERE (E.G. CUTTING AND PASTING OF DATA TO SPECIFIED FIELDS)
End Sub
有什么想法或意见可以推动我朝着正确的方向发展吗?
问候
丹尼尔
答案1
在选择和应用格式之前,您需要检查工作表的名称。使用If..Then
。检查工作表是否不应格式化。AND
如果有多个工作表不能格式化,则添加 。更改您的代码,如下所示:
Sub FormatData1()
Dim xSh As Worksheet
Application.ScreenUpdating = False
For Each xSh In Worksheets
If xSh.Name <> "Sheet2" And xSh.Name <> "Sheet3" And xSh.Name <> "Sheet5" Then
xSh.Select
xSh.Cells(1, 1).Value = xSh.Name
Call FormatData2
End If
Next
Application.ScreenUpdating = True
End Sub