[英]how to set worksheet to variable for further methods (with loop)
I have created a worksheets from a range using this code (which is working for me) 我已经使用此代码从一个范围创建了一个工作表(这对我有用)
Sub AddSheets1()
Dim cell As Excel.Range
Dim wsWithSheetNames As Excel.Worksheet
Dim wbToAddSheetsTo As Excel.Workbook
Set wsWithSheetNames = ActiveSheet
Set wbToAddSheetsTo = ActiveWorkbook
Dim xlWs1 As Worksheet
Set xlWs1 = Worksheets("template")
Set Rng1 = xlWs1.Range("A1:AR2")
For Each cell In wsWithSheetNames.Range("G3:G5") 'user to change this value when list is updated
With wbToAddSheetsTo
.Sheets.Add after:=.Sheets(.Sheets.Count)
On Error Resume Next
ActiveSheet.Name = cell.Value
Set xlWs2 = Worksheets(CStr(cell.Value))
Set Rng2 = xlWs2.Range("A1")
Rng1.Copy Rng2
If Err.Number = 1004 Then
Debug.Print cell.Value & " already used as a sheet name"
End If
On Error GoTo 0
End With
Next cell
End Sub
So now, I want to assign the newly created worksheets with variables. 所以现在,我要为新创建的工作表分配变量。 (so that I can further manipulate using ws1, ws2 etc. Something like (以便我可以进一步使用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
How do I assign the worksheet name to the names that I've created from the range? 如何将工作表名称分配给从该范围创建的名称?
Assuming there may be more sheets than what's specified in G3:G5, maybe this will work. 假设可能有比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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.