【发布时间】:2021-10-09 03:04:17
【问题描述】:
我创建了一个子例程来根据输入字符串(新文件名)创建一个新的 Excel 工作簿。如下:
Private Sub AddSaveAsNewWorkbook(FILE As String)
Dim path As String
path = FILE & ".xlsx"
Set Wk = Workbooks.Add
With Wk
.SaveAs Filename:=path
End With
End Sub
但是,我正在使用这个子例程来生成超过 40,000 个新文件。如果程序每次都打开这些文件中的每一个,我的计算机就会崩溃。有没有办法做到这一点,而不是自动打开 Excel 文件?
谢谢。
【问题讨论】:
-
与其不断调用
Workbooks.Add(),只需调用一次,然后在循环中使用wk.SaveAs来创建您需要的所有版本:无需在excel 中不断添加新文件。或者创建一个模板文件并复制/重命名它而不在 Excel 中打开它(使用FileCopy)。 -
如果你想尽可能地坚持你的代码,那么至少在
.SaveAs ...之后调用.Close。还请澄清不是您的计算机崩溃了,而是 Excel 有所不同! -
将您的数据放入数据库并制作一个 Excel 文件来提取数据。谁会看 40k Excel 文件?或者通过直接使用 Open and Print 而不是 Excel 对象模型编写 CSV 文件。
-
@DickKusleika 谁会查看这么多文件并不重要,你不知道他对那个动作的意图。
-
好吧@lowak 我不同意。有时你必须回答他们没有问的问题。