创建一个新文件并在单元格中插入一个值

时间:2018-07-16 13:35:43

标签: excel vba excel-vba

我使用以下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>

2 个答案:

答案 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

它基于引用-在变量中保存对工作簿的引用,并在代码中进一步使用它们以在新工作簿的工作表中的单元格中设置例如值:)

您调用的最后一件事是关闭旧工作簿,因为它也终止了一个代码:)