要创建一个新工作簿,您可以使用Workbooks.Add。要打开现有的,您可以使用 Workbooks.Open,然后引用该工作簿中的工作表。
要更改文件的名称,您可以使用 SaveAs 方法将其保存为新名称。
Sub Test()
Dim wb As Workbook
Dim ws As Worksheet
Dim FileName As String
Set wb = Workbooks.Add 'Creates a new workbook with default name.
'Set wb = Workbooks.Open("<path to folder>\" & FileName & ".xlsm") 'Open an existing file.
Set ws = wb.Worksheets("Sheet1")
wb.SaveAs "<path to folder>\" & FileName & ".xlsm" 'Save and rename here.
With ws
.Range("A1") = "Adding some text to this cell"
End With
End Sub
作为另一个示例,下面的代码将在将工作表从第一个工作簿复制到第二个工作簿的末尾之前创建两个工作簿。
Sub Test1()
Dim wb As Workbook, wb1 As Workbook
Dim ws As Worksheet
'Create first workbook so it contains only 1 sheet (xlWBATWorksheet)
', reference Sheet1 and add some data to it.
Set wb = Workbooks.Add(xlWBATWorksheet)
Set ws = wb.Worksheets("Sheet1")
ws.Range("A1") = "This cell populated in first workbook."
'Create second workbook with default number of sheets
'and copy Sheet1 from first book to the end of this one.
Set wb1 = Workbooks.Add
ws.Copy After:=wb1.Sheets(wb1.Sheets.Count)
End Sub
再次编辑:
要根据WeekNumber_Invoice_Date 找出工作簿名称,您可以使用:
Sub Test2()
Dim wb As Workbook
Dim sPath As String
Dim dDate As Date
dDate = Date 'Todays date
sPath = "C:\MyFolder\"
sPath = sPath & _
WorksheetFunction.WeekNum(dDate, 2) & "_Invoice_" & Format(dDate, "ddmmyyyy") & ".xlsm"
'Open if already exists.
'Set wb = Workbooks.Open(sPath)
'Create and SaveAs new name.
Set wb = Workbooks.Add
wb.SaveAs sPath
End Sub
这将根据今天2018 年10 月22 日 的日期给出C:\MyFolder\43_Invoice_22102018.xlsm 的文件路径。
注意:WEEKNUM 函数将包含 1 月 1 日的那一周视为一年中的第一周。