在除指定工作表之外的所有工作表上应用宏

在除指定工作表之外的所有工作表上应用宏

我开发了一个 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

相关内容