独立使用宏代码的一部分

时间:2018-05-28 11:54:17

标签: excel vba excel-vba

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

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

代码示例:

片(" AT&#34)。选择 "无论需要什么代码"

表(" DE&#34)。选择 "无论需要什么代码"

等...... 如果问题不明确,请告诉我。

1 个答案:

答案 0 :(得分:1)

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

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

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

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