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

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

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

  1. Private Sub UserForm_Initialize()
  2. Dim ws As Worksheet
  3. For Each ws In Worksheets
  4. ws.Activate
  5. ListBox1.AddItem ActiveSheet.Name
  6. Next
  7. ListBox1.MultiSelect = fmMultiSelectMulti
  8. End Sub

字符串

lmyy7pcs

lmyy7pcs1#

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

  1. Private Sub UserForm_Initialize()
  2. Dim ws As Worksheet
  3. For Each ws In Worksheets
  4. If ws.Visible = xlSheetVisible Then ListBox1.AddItem ws.Name
  5. Next
  6. ListBox1.MultiSelect = fmMultiSelectMulti
  7. End Sub

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

  1. Private Sub Done_Click()
  2. Dim arrSheetlist()
  3. X = 1
  4. For i = 0 To ListBox1.ListCount - 1
  5. If ListBox1.Selected(i) = True Then
  6. ReDim Preserve arrSheetlist(1 To X)
  7. arrSheetlist(X) = ListBox1.List(i)
  8. X = X + 1
  9. End If
  10. Next i
  11. If X > 1 Then Worksheets(arrSheetlist).Select
  12. End Sub

展开查看全部

相关问题