奇妙的VBA代碼之三十一:如何新建EXCEL工作簿文件

各位好,今日我們講VBA代碼的第三十一講,如何新建EXCEL工作薄文件。對於工作薄的解釋,我們在之前的文章中已經講解過,要再複習一下,同時要注意

工作薄和工作表的概念。工作薄是文件,工作表是工作薄的工作頁。在VBA中使用Add方法新建工作簿。

一:ADD方法:使用Workbooks對象的Add方法創建新工作簿,其語法為:Workbooks對象.Add(Template)參數Template可選,確定如何創建新工作簿。如果該參數指定的字符串是已有的Excel文件名,那麼使用指定的文件作為模板創建新工作簿。如果該參數指定為xlWBATemplate常量之一,則新工作簿包含單個指定類型的工作表。如果忽略該參數,那麼新工作簿包含標準的空工作表,可以使用SheetsInNewWorkbook屬性設置工作表數。

xlWBATemplate常量為:xlWBATChart,xlWBATExcel4IntlMacroSheet,xlWBATExcel4MacroSheet,xlWBATWorksheet。分別代表圖表工作表、宏工作表以及標準工作表。

二 下面我們來詳細講解一下如何創建工作薄文件,如下面的代碼所示。

Sub MyAddNowbook()

Dim Nowbook As Workbook

Dim ShName As Variant

Dim Arr As Variant

Dim i As Integer

Dim myNewWorkbook As Integer

myNewWorkbook = Application.SheetsInNewWorkbook

ShName = Array("餘額數", "單價數", "數量", "金額數")

Arr = Array("1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月")

Application.SheetsInNewWorkbook = 4

Set Nowbook = Workbooks.Add

With Nowbook

For i = 1 To 4

With .Sheets(i)

.Name = ShName(i - 1)

.Range("B1").Resize(1, UBound(Arr) + 1) = Arr

.Range("A2") = "品名"

End With

Next

.SaveAs Filename:=ThisWorkbook.Path & "" & "庫存.xls"

.Close Savechanges:=True

End With

Set Nowbook = Nothing

Application.SheetsInNewWorkbook = myNewWorkbook

End Sub

代碼解析:MyAddNowbook過程使用Add方法建立新的工作簿並對新建工作簿進行操作。

a) 第2行到第6行代碼聲明變量類型。

b) 第7行代碼保存Excel自動插入到新工作簿中的工作表數目。

c) 第8、9行代碼將數組元素賦值給變量。

d) 第10行代碼將Application對象的SheetsInNewWorkbook屬性設置為4,在新建工作簿時插入4張工作表。

e) 第11行代碼使用Add方法建立新的工作簿,應用於Workbooks對象的Add方法新建工作簿,新建的工作簿將成為活動工作簿。

f) 第12行到第22行代碼操作新建工作簿。

g) 第15行到第17行代碼將新建工作簿的工作表進行重命名並給單元格賦值。

h) 第20行代碼使用SaveAs方法將新建工作簿重命名為"庫存.xls"保存在同一目錄中。

i) 第21行代碼使用Close方法關閉工作簿。

j) 第24行代碼恢復工作簿的默認設置。

三:實測代碼

代碼窗口:

奇妙的VBA代碼之三十一:如何新建EXCEL工作簿文件

運行後:新添了文件庫存。

奇妙的VBA代碼之三十一:如何新建EXCEL工作簿文件

庫存的內容:

奇妙的VBA代碼之三十一:如何新建EXCEL工作簿文件

今日內容迴向:

1 ADD方法是什麼?

2 .Range("B1").Resize(1, UBound(Arr) + 1) = Arr 是什麼意義?


分享到:


相關文章: