VBA使用范围select多个工作表

我会在单元格C2到C5中有一些表格名称,这些名称是dynamic的,我想select他们在同一时间使用VBA

但迄今为止,我发现的唯一方法是使用数组和对表格名称进行“硬编码”,而不是使用范围

这是我到目前为止所尝试的代码

Sub ssheets() Worksheets(Array("Sheet2", "Sheet3","Sheet4","Sheet5")).Select End Sub 

我最好喜欢使用Range("C2:C5")东西,这样我就可以dynamic地select相关的表单而不必在“VBA代码”中input“Sheet2”,“Sheet3”,“Sheet4”,“Sheet5”

谢谢

图表名称数组必须是包含一维数组的Varianttypes。 范围(“C2:C5”)返回一个二维数组。 要将其用作表格名称数组,您必须对其进行转置。

 Sub ssheets() Dim oWS As Worksheet Dim aSheetnames As Variant Set oWS = Worksheets(1) aSheetnames = oWS.Range("C2:C5") aSheetnames = Application.WorksheetFunction.Transpose(aSheetnames) Worksheets(aSheetnames).Select End Sub 

尝试这个:

 Sub Macro1() Dim sheetArray() As String Dim i As Integer i = 0 For Each c In Range("C2:C5").Cells ReDim Preserve sheetArray(0 To i) sheetArray(i) = c.Value i = i + 1 Next Sheets(sheetArray).Select End Sub 

如果具有该名称的工作表存在,然后将其添加到数组中,您也可以考虑添加validation。