Excel -使用输入表单选择多个工作表

6ojccjat  于 2023-11-20  发布在  其他
关注(0)|答案(1)|浏览(157)

我写了一个宏来可视化输入表单与所有工作表目前在活动工作簿,然后用户需要选择所有要复制的。
我编写了显示表单的代码。
我找不到解决方案来存储用户在数组(??)中所做的选择,或者在按下“完成”按钮时将其用于工作表选择(和未来的副本)。

Private Sub UserForm_Initialize()
    Dim ws As Worksheet
  
    For Each ws In Worksheets
        ws.Activate
        ListBox1.AddItem ActiveSheet.Name
    Next
    
    ListBox1.MultiSelect = fmMultiSelectMulti
    
End Sub

字符串

lmyy7pcs

lmyy7pcs1#

您应该将代码更改为仅列出 visible 表,以防止尝试选择隐藏工作表时出错。

Private Sub UserForm_Initialize()

    Dim ws As Worksheet
  
    For Each ws In Worksheets
        If ws.Visible = xlSheetVisible Then ListBox1.AddItem ws.Name
    Next
    
    ListBox1.MultiSelect = fmMultiSelectMulti
    
End Sub

字符串
下面假设您的按钮名为DONE。您可能需要更改它。

Private Sub Done_Click()

    Dim arrSheetlist()

    X = 1
    For i = 0 To ListBox1.ListCount - 1
       If ListBox1.Selected(i) = True Then
            ReDim Preserve arrSheetlist(1 To X)
            arrSheetlist(X) = ListBox1.List(i)
            X = X + 1
       End If
    Next i
   
    If X > 1 Then Worksheets(arrSheetlist).Select
  
End Sub

相关问题