文件应该更新,但保存了一个副本

File should be updated but a copy is saved instead

抱歉,如果主题名称不完美,很难描述,因为我已经比较接近尾声了。

我的宏调用另一个文件,复制它,打开副本,粘贴一些数据,然后应该保存并关闭它。 不幸的是,文件被复制,副本被打开,看起来数据被粘贴了。然后 "save as" 对话框出现并告诉我同名文件已经存在。 我输入另一个名称并保存文件。

现在我有 3 个文件,而不是原始文件和更新文件:

原始版本,一个副本没有任何更新,但初始名称和第二个版本有更新,但我必须在 "save as" 对话框中选择另一个名称。

我如何获取它以便只有旧文件和更新文件并且更改保存在原始文件中(最好没有任何prompt/dialog)

我希望我对问题的解释足够好,请随意提问,我们将不胜感激。

'select old file to copy, insert data from this workbook into the copy, save the copy.

PfadVorlageDatei = Application.GetOpenFilename("Exceldateien,*.xls*", 1, "Vorlage auswählen")

PfadNeueDatei = Application.GetSaveAsFilename(FileFilter:= _
"Exceldateien (*.xlsx), *.xlsx", Title:="Datei speichern", _
InitialFileName:="")

FileCopy PfadVorlageDatei, PfadNeueDatei

Set NeueDatei = Workbooks.Open(Filename:=PfadNeueDatei, ReadOnly:=True)

With ThisWorkbook.Worksheets("Test")
.Range(.Cells(8, 2), .Cells(100, 100)).Copy
End With

With NeueDatei.Worksheets("Test").Range("B8")
    .PasteSpecial xlPasteFormats
    .PasteSpecial xlPasteValues
End With

NeueDatei.Close SaveChanges:=True ' i guess here is the issue

正如@FunThomas 所说,只需更改行

Set NeueDatei = Workbooks.Open(Filename:=PfadNeueDatei, ReadOnly:=True)

Set NeueDatei = Workbooks.Open(Filename:=PfadNeueDatei, ReadOnly:=False)

工作完美。非常感谢!