【分享成果,随喜正能量】我告诫自己:你的话说得太多,你听别人倾诉得太多,你咖啡喝得太多,你在陌生的房间里坐的时间太长,你的睡眠质量太差,你醒着的时间太长,你平庸的事想得太多,你希望过多,你安慰自己太频繁。我或许败北,或许迷失自己,或许哪里也抵达不了,或许我已失去一切,任凭怎么挣扎也只能徒呼奈何,或许我只是徒然掬一把废墟灰烬,唯我一人蒙在鼓里,或许这里没有任何人把赌注下在我身上。无所谓。有一点是明确的:至少我有值得等待有值得寻求的东西。
《VBA代码解决方案》这套教程是我最早推出的教程,目前已经是第二版修订了。这套教程定位于入门后的提高,在学习这套教程过程中,侧重点是要理解及掌握我的“积木编程”思想。要灵活运用教程中的实例像搭积木一下把自己喜欢的代码摆好。
这套教程共三册,一百四十七讲,内容覆盖较广,也是初级和中级间的过度教程,改版后的内容主要是提供程序源码文件及代码修正为32位和64位兼用代码。今后一段时间会给大家陆续推出。今日的内容是第26讲:利用VBA新建工作簿
第二十六讲 如何新建EXCEL工作簿文件
各位好,今日我们讲VBA代码的第26讲,如何新建EXCEL工作薄文件。对于工作薄的解释,我们在之前的文章中已经讲解过,要再复习一下,同时要注意工作薄和工作表的概念。工作薄是文件,工作表是工作薄的工作页。在VBA中使用Add方法新建工作簿。
1 使用Workbooks对象的Add方法创建新工作簿
使用Workbooks对象的Add方法创建新工作簿,其语法为:
Workbooks对象.Add(Template)
参数Template可选,确定如何创建新工作簿。如果该参数指定的字符串是已有的Excel文件名,那么使用指定的文件作为模板创建新工作簿。如果该参数指定为xlWBATemplate常量之一,则新工作簿包含单个指定类型的工作表。如果忽略该参数,那么新工作簿包含标准的空工作表,可以使用SheetsInNewWorkbook属性设置工作表数。
xlWBATemplate常量为:xlWBATChart,xlWBATExcel4IntlMacroSheet,xlWBATExcel4MacroSheet,xlWBATWorksheet。分别代表图表工作表、宏工作表以及标准工作表。
2 新建EXCEL工作簿文件的实例代码及代码解读
下面我们来详细讲解一下如何创建工作薄文件,如下面的代码所示:
Sub mynz_26() ‘第26讲 如何新建EXCEL工作簿文件
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 & “\” & “库存.xlsx”
.Close Savechanges:=True
End With
Set Nowbook = Nothing
Application.SheetsInNewWorkbook = myNewWorkbook
End Sub
代码窗口:
代码解析:mynz_26()过程使用Add方法建立新的工作簿并对新建工作簿进行操作。
1) 第2行到第6行代码声明变量类型。
2) 第7行代码保存Excel自动插入到新工作簿中的工作表数目。
3) 第8、9行代码将数组元素赋值给变量。
4) 第10行代码将Application对象的SheetsInNewWorkbook属性设置为4,表示在新建工作簿时插入4张工作表。
5) 第11行代码使用Add方法建立新的工作簿,应用于Workbooks对象的Add方法新建工作簿,新建的工作簿将成为活动工作簿。
6) 第12行到第22行代码操作新建工作簿。
7) 第15行到第17行代码将新建工作簿的工作表进行重命名并给单元格赋值。
8) 第20行代码使用SaveAs方法将新建工作簿重命名为“库存.xls”保存在同一目录中。
9) 第21行代码使用Close方法关闭工作簿。
10) 第24行代码恢复工作簿的默认设置。
代码的运行结果:新添了文件“库存”,内容如下:
今日内容回向:
1 ADD方法是什么?
2 .Range(“B1”).Resize(1, UBound(Arr) + 1) = Arr 是什么意义?
本讲内容参考程序文件:VBA代码解决方案修订(1-48).xlsm
我20多年的VBA实践经验,全部浓缩在下面的各个教程中: