使用单元格引用在VB中定义数组

时间:2013-10-22 05:47:25

标签: arrays excel vba range

我正在尝试使用单元格引用来定义数组,而不是每次所需的工作表更改时都需要更改宏。

我在工作表的单元格B29中列出了所需的工作表,所以我尝试了

.Sheets(Array(WorkSheets("Approver 4").Range("B29"))).Copy

但这不起作用。

所以目前我不知道如何列出工作表名称:

.Sheets(Array("Scenario Summary", "Scenario 1-3 ML(JA) Logon Pages", "Scenario 4-6 ML(ZH) Logon Pages", "Scenario 7-9 ML(ZH) Logon Pages", "Approver 4")).Copy

Set Sourcewb = ActiveWorkbook

'Copy the sheets to a new workbook
With Sourcewb
    Set TheActiveWindow = ActiveWindow
    Set TempWindow = .NewWindow
    'copy the below sheet names from the Worksheets cell (B29) on the worksheet
    .Sheets(Array("Scenario Summary", "Scenario 1-3 ML(JA) Logon Pages", "Scenario 4-6 ML(ZH) Logon Pages", "Scenario 7-9 ML(ZH) Logon Pages", "Approver 4")).Copy
End With

有什么建议吗?非常感谢!

1 个答案:

答案 0 :(得分:0)

假设您的单元格B29包含没有引号且没有多余空格的逗号分隔列表,请尝试

.Sheets(Split(WorkSheets("Approver 4").Range("B29"),",")).Copy

B29

中的预期数据
Scenario Summary,Scenario 1-3 ML(JA) Logon Pages,Scenario 4-6 ML(ZH) Logon Pages,Scenario 7-9 ML(ZH) Logon Pages,Approver 4

如果您的任何工作表名称包含,

,则注意不起作用