如何从存储的工作表变量创建工作表
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
并进行进一步的操作,直到您再次切换为可见。
这里是新 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
并进行进一步的操作,直到您再次切换为可见。