我使用以下VBA从现有文件创建新文件:
Sub Files()
ActiveWorkbook.SaveCopyAs "C:\Users\" & Environ("Username") & "\Desktop\testfile.xlsm"
Workbooks.Open "C:\Users\" & Environ("Username") & "\Desktop\" & "testfile.xlsm", UpdateLinks:=False
ThisWorkbook.Close SaveChanges = False
End Sub
创建文件后,将打开新文件,并关闭原始文件。
到目前为止,所有这些工作正常。
但是,现在我想在新文件中将1
插入Cell A1
的{{1}}中。基本上是这样的:
first sheet
如何才能修改我的代码以使其正常工作?
我考虑过将新创建文件的文件路径包含在Sub InsertValue
Sheet1 (in new created file).Range("A1").Value = 1
End Sub
中,然后在Sub InsertValue
之前包含Call
这个子项,但到目前为止我还无法使它起作用:-(< / p>
答案 0 :(得分:0)
由于您没有在原始文件中保存任何更改,因此可以更改其中的值,保存副本,然后将原始文件扔掉
Sub Files()
Activeworkbook.sheets(1).range("A1") = 1
ActiveWorkbook.SaveCopyAs "C:\Users\" & Environ("Username") & "\Desktop\testfile.xlsm"
Workbooks.Open "C:\Users\" & Environ("Username") & "\Desktop\" & "testfile.xlsm", UpdateLinks:=False
ThisWorkbook.Close SaveChanges = False
End Sub
答案 1 :(得分:0)
尝试以下代码:
Option Explicit
Sub Files()
Dim wb As Workbook, newWb As Workbook, path As String
Set wb = ActiveWorkbook
path = "C:\Users\" & Environ("Username") & "\Desktop\testfile.xlsm"
wb.SaveCopyAs path
Set newWb = Workbooks.Open(path, UpdateLinks:=False)
newWb.Sheets(1).Cells(1, 1).Value = 1
wb.Close (False)
End Sub
它基于引用-在变量中保存对工作簿的引用,并在代码中进一步使用它们以在新工作簿的工作表中的单元格中设置例如值:)
您调用的最后一件事是关闭旧工作簿,因为它也终止了一个代码:)