这里有新的VBA用户......
我不知道如何根据存储在内存中的变量创建工作表。我要做的是创建现有"模板的多个副本"打开工作簿中的工作表,在内存中操作它们(例如更改范围值,添加公式等),然后在打开的工作簿中将它们创建为实际工作表。
我可以在内存中创建副本并将它们存储在一个数组中,但我无法在工作簿中创建实际的工作表。请帮助:)
Dim wb As Workbook
Dim ws As Worksheet
Dim wsTemplate As Worksheet
Dim wsCopies(1 To 5) As Worksheet
Dim x As Long
Set wb = ThisWorkbook
Set ws = wb.Sheets("Worksheet Test")
Set wsCopy = ws
For x = 1 To 5
Set wsCopies(x) = wsTemplate
'used this line to make sure this actually copied into memory
Debug.Print wsCopies(x).Range("A1").FormulaR1C1
Next x
提前致谢!
答案 0 :(得分:0)
内存中确实没有"工作表"只存在于内存中。您可以在工作簿中创建一个新的工作表。如果没有一点点诡计,复制工作表也不是一个好方法。类似的东西:
For x = 1 To 5
wsTemplate.copy after:=wsTemplate
Set wsCopies(x) = wb.Sheets(wsTemplate.index + 1)
'used this line to make sure this actually copied into memory
Debug.Print wsCopies(x).Range("A1").FormulaR1C1
Next x
哪个并不可怕,但它并不完全是你的想法。如果您未进入application.screenupdating = false
所有这一切,则可以将wsCopies(x).visible
设置为xlSheetHidden
并进行进一步操作,直到您再次切换为可见为止。