首页 > 解决方案 > 独立使用部分宏代码

问题描述

我有一个疑问!我有一个在工作簿中合并 22 张工作表的代码。现在我想为每张工作表准备单独的按钮,这样如果用户想要他们可以只合并他们需要的工作表,而不是所有 22 张工作表。

我只知道创建 22 个独立模块的方法,其中包含与每张工作表相关的部分代码。有没有其他简洁的方法不让我准备 22 个单独的模块?

代码示例:

表格(“AT”)。选择“所需的任何代码”

Sheets("DE").select "所需的任何代码"

等等....如果问题不清楚,请告诉我。

标签: vbaexcel

解决方案


您只需要一个模块。当您单击工作表上的按钮时,它将位于活动工作表上。因此,您只需对活动表而不是工作簿中的每张表进行操作。

如果我正在做这项工作,我将创建一个用户表单,其中包含用户可以选择的工作表名称列表,然后模块将逐步遍历列表中每个选定的工作表名称并执行您需要的任何操作。整个工作簿操作的复选框也很有用。

使用命令按钮和名为“myListBox”的列表框创建一个新的用户窗体,并确保 MultiSelect 属性设置为多而不是单,然后添加以下代码。这将遍历工作簿中的每个工作表并将名称添加到列表框中。选择多个名称并单击命令按钮后,它将将选定的名称打印到立即窗口

Private Sub UserForm_Initialize() 
Dim wks As Worksheet 
    For Each wks In ActiveWorkbook.Worksheets 
        Me.myListBox.AddItem wks.Name 
    Next 
End Sub 

Private Sub CommandButton1_Click() 
    For i = 0 To myListBox.ListCount - 1 
        If myListBox.Selected(i) Then 
            Debug.Print myListBox.List(i)
        End If 
    Next i 
End Sub

推荐阅读