奇妙的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 是什么意义?


分享到:


相關文章: