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

时间:2019-01-17 11:37:19

标签: excel vba savefiledialog

很抱歉,如果“主题”的名称不是很完美,那么很难描述,因为Iam已经比较接近结尾了。

我的宏调用另一个文件,将其复制,打开副本,粘贴一些数据,然后保存并关闭它。 不幸的是,文件被复制,选择了副本,并且看起来像粘贴了数据。然后出现“另存为”对话框,并告诉我该名称的文件已经存在。 我输入另一个名称并保存文件。

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

原始文件,一个副本没有任何更新,但有初始名称,而另一个版本有更新,但另一个名称是我必须在“另存为”对话框中选择的。

我如何获取它,以便只有旧的和更新的文件,并且更改保存在原始文件中(最好没有任何提示/对话框)

我希望我已经很好地解释了这个问题,请您随意提问,我们将不胜感激。

'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

1 个答案:

答案 0 :(得分:0)

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

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

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

做得很好。非常感谢!