使用范围选择多张纸 [英] Selecting multiple sheets using a range
问题描述
我在单元格C2到C5中有工作表名称,它们是动态的.我想使用VBA同时选择它们.
I have sheet names in cells C2 to C5, which are dynamic. I would like to select them at the same time using VBA.
我发现的唯一方法是使用数组和硬编码".工作表名称.
The only way I have found uses arrays and "hard-coding" the sheet names.
Sub ssheets()
Worksheets(Array("Sheet2", "Sheet3","Sheet4","Sheet5")).Select
End Sub
我想要使用 Range("C2:C5")
的东西,这样我就可以选择相关的工作表,而不必键入"Sheet2","Sheet3","Sheet4","Sheet5"表示为"Sheet4","Sheet5".等
I would like something that uses Range("C2:C5")
so that I can select the relevant sheets without having to type in "Sheet2", "Sheet3","Sheet4","Sheet5" etc.
推荐答案
工作表名称数组必须为包含一维数组的Variant类型.Range("C2:C5")返回一个二维数组.要将其用作工作表名称数组,必须对其进行转置.
The sheet names array has to be of type Variant containing a one dimensional array. The Range("C2:C5") returns a two dimensional array. To use this as sheet names array, you have to transpose it.
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
这篇关于使用范围选择多张纸的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!