【发布时间】:2021-04-17 16:27:21
【问题描述】:
大家好,我在这里需要一些帮助,搜索了相关主题的论坛,但仍然无法弄清楚我下面的宏有什么问题。我正在尝试从单元格 J4 的下拉列表(启用多项选择)中复制用户选择的特定工作表。例如,有名为阿姆斯特丹、鹿特丹、科佩尔、长滩和洛杉矶的工作表,用户从下拉列表中选择了阿姆斯特丹、科佩尔和长滩,单元格 J4 中的值将是阿姆斯特丹、科佩尔、长滩。然后我使用 split 将字符串分隔为一个数组以复制选定的工作表,但是它在 ThisWorkbook.Sheets(Selection).Copy 行遇到下标超出范围错误,非常感谢任何建议。
Sub MainPage_Button2_Click()
Dim Path As String, Filename1 As String, ddVal As String, ddList() As String, Selection As Variant
Application.ScreenUpdating = False
Path = "G:\Dept\sales\"
Filename1 = Range("A2").Value
ddVal = Range("J4")
ddList = Split(ddVal, ",")
Selection = Array(ddList)
Application.DisplayAlerts = False
ThisWorkbook.Sheets(Selection).Copy
ActiveWorkbook.SaveAs Filename:=Path & Filename1 & ".xlsx", FileFormat:=xlOpenXMLWorkbook
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
【问题讨论】: