繁体   English   中英

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

[英]How do I create a worksheet from a stored worksheet variable

这里有新的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

提前致谢!

确实没有仅在内存中存在的“内存中的工作表”。 您在工作簿中创建了一个新的工作表。 没有一点诡计,复制工作表的好方法也不是。 就像是:

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).visiblexlSheetHidden并进行进一步的操作,直到再次切换到visible为止。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM