1

我正在使用 Excel VBA,但我认为这是一个相当普遍的问题。

我有以下声明

Public newReport As Excel.Workbook

稍后在代码中,打开并命名一个 xlsx 文件后,MyBook.xlsx我将这个变量指向该文件:

Set newReport = Excel.Workbooks("MyBook.xlsx")

我又有点困惑了。可变行为。如果我稍后打开 MyBook.xlsx 并执行ActiveWorkbook.SaveCopyAs并给它一个新名称说 MyBookNew.xlsx 将变量newReport指向新工作簿吗?

相关代码示例如下:

Public newReport As Excel.Workbook

Sub FileExperiment()

Set newReport = Excel.Workbooks.Add
newReport.SaveAs ThisWorkbook.Path & "\MyBook.xlsx"

Set newReport = Excel.Workbooks("MyBook.xlsx")
ActiveWorkbook.SaveCopyAs ThisWorkbook.Path & "\MyNewBook.xlsx"

newReport.Close False

End Sub
4

1 回答 1

0

newReport将保持不变。

从帮助文件中剪切,关于命令SaveCopyAs

将工作簿的副本保存到文件中,但不修改内存中打开的工作簿。

于 2012-09-04T10:44:22.160 回答