Vba 如何将工作表设置为进一步方法的变量(带循环)

Vba 如何将工作表设置为进一步方法的变量(带循环),vba,excel,Vba,Excel,我已经使用此代码从一个范围创建了一个工作表(对我有效) 现在,我想用变量分配新创建的工作表。(以便我可以使用ws1、ws2等进行进一步操作。 差不多 Dim i As Integer, n As Integer n = wsWithSheetNames.Range("G3:G5").Count ReDim ws1(1 To n) For i = 1 To n Set ws1(i) = ThisWorkbook.Worksheets(i) Next 如何将工作表名称指定给我从该范围创建的

我已经使用此代码从一个范围创建了一个工作表(对我有效)

现在,我想用变量分配新创建的工作表。(以便我可以使用ws1、ws2等进行进一步操作。 差不多

Dim i As Integer, n As Integer
n = wsWithSheetNames.Range("G3:G5").Count
ReDim ws1(1 To n)
For i = 1 To n
    Set ws1(i) = ThisWorkbook.Worksheets(i)
Next

如何将工作表名称指定给我从该范围创建的名称?

假设工作表的数量可能超过G3:G5中指定的数量,这可能会起作用

Dim r As Range, c As Range, x As Long
Set r = wsWithSheetNames.Range("G3:G5").SpecialCells(xlCellTypeConstants)
ReDim ws1(1 To r.Count)
For Each c In r
  x = x + 1
  Set ws1(x) = ThisWorkbook.Worksheets(c.Value)
Next c

也许行中的小更改是:Set ws1(i)=ThisWorkbook。工作表(i)改为:Set ws1&i=ThisWorkbook。工作表(i)应该适合您。@1001001,代码不起作用,保存时出错
Dim r As Range, c As Range, x As Long
Set r = wsWithSheetNames.Range("G3:G5").SpecialCells(xlCellTypeConstants)
ReDim ws1(1 To r.Count)
For Each c In r
  x = x + 1
  Set ws1(x) = ThisWorkbook.Worksheets(c.Value)
Next c