一、新建工作簿
1、新建臨時工作簿
Workbooks.Add
ActiveWorkbook.SaveAs "c:\123.xlsx"
2、使用變量新建工作簿
Dim Wb As Workbook
Set Wb = Workbooks.Add
Wb.SaveAs Filename:="c:\123.xlsx"
兩個代碼都可以新建一個名稱為123.xlsx的工作簿,並保存在C盤。
代碼2使用變量,將工作簿賦值給Wb變量,更加靈活。
新建工作簿後,該工作簿就成為了當前活動工作簿,然後保存工作簿的時候,
需要選擇路徑保存在那裡,但工作簿並沒有關閉,需要手工關閉。
Filename:="c:\123.xlsx" 中的Filename:=可以省略。
二、SaveAs方法
新建工作簿的時候,需要保存工作簿,一般使用SaveAs方法。
該方法的官方文檔為下列鏈接:
https://msdn.microsoft.com/zh-cn/VBA/Excel-VBA/articles/workbook-saveas-method-excel
SaveAs方法相當於我們保存工作簿的操作,在官方說明中可以看到,其後面的參數都可以省略,省略參數的一些示例如下:(建議寫全路徑)
ActiveWorkbook.SaveAs ‘默認路徑下保存工作簿,自動重命名
ActiveWorkbook.SaveAs "新建" ‘默認路徑下保存工作簿,並命名為“新建”
ActiveWorkbook.SaveAs "D:\新建.xlsx" ‘在D盤下保存工作簿,並命名為“新建”
SaveAs保存對工作簿所做的更改。
所以在關閉工作簿的時候,並沒有彈出提示常見的保存更改提示(類似下圖)。
保存工作簿更改的另一個方法是:Workbook.Save,也就是常見的保存操作。
當然在新建工作簿的時候也可以使用,但不指定路徑,需另外指定。
下面Gif:在C盤新建一個名稱為“456.xlsx”工作簿,並在該工作簿的sheet1工作簿的單元格A1輸入“套路Excel”。
注意,SaveAs方法保存了工作簿更改,但該程序並沒有關閉工作簿。在最後手工關閉工作簿的時候,
並沒有是否保存工作簿更改,可以看出SaveAs是保存了工作簿的更改的。
三、什麼是路徑?
如圖:路徑就是類似 C:\Users\Public的地址, 注意是 \ 不是 / 。
在新建工作簿的時候,指定路徑保存工作簿,必須確保路徑存在,否則出錯。
如保存路徑為: "c:\123\456.xlsx" ,C盤肯定是存在的,但名稱為“123的文件名如果不存在,就會出錯。
四、工作簿的複製和刪除
複製工作簿:從一個路徑複製到另外一個路徑(路徑必須存在)
'複製C盤456.xlsx文件到C盤789文件夾裡面,並重命名為123.xlsx。
FileCopy "c:\456.xlsx", "c:\789\123.xlsx"
Kill "c:\123.xlsx" '刪除文件
五、練習:拆分表格為工作簿
在文章 :
我們練習過拆分表格為工作表的練習,現在改為按產品拆分表格為新的工作簿。
參考代碼:(大部分代碼相同,將保存為工作表的代碼修改為保存為工作簿的代碼即可)
涉及到工作簿的操作為:
新建工作簿--導入拆分的表格數據--保存工作簿到指定路徑--關閉工作簿。
紅色方框內的代碼完成了上述的操作。
sname = .Range("g" & i) & ".xlsx" '工作簿名稱為產品名稱
Set wb = Workbooks.Add '新建工作簿
Rng1.Copy wb.Sheets("sheet1").[a1] '導入拆分的數據
wb.SaveAs "c:\123" & sname '保存工作簿在C盤的123文件夾裡
wb.Close '關閉工作簿(SaveAs已保存工作簿更改)
Excel文件下載請移步到 下載。
閱讀更多 套路Excel 的文章