如何从存储的工作表变量创建工作表

How do I create a worksheet from a stored worksheet variable

这里是新 VBA 用户...

我不知道如何根据存储在内存中的变量创建作品sheet。我想要做的是从打开的工作簿创建现有 "template" sheet 的多个副本,在内存中操作它们(例如更改范围值、添加公式等),然后在中创建它们实际打开的工作簿 sheets.

我可以在内存中创建副本并将它们存储在数组中,但我无法在我的工作簿中创建实际工作sheet。请帮助:)

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

提前致谢!

真的没有只存在于记忆中的"Worksheet in memory"。您创建了一个新的工作表,它就在您的工作簿中。也没有什么好方法可以不费吹灰之力地复制工作表。类似于:

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 并进行进一步的操作,直到您再次切换为可见。