昨天有寫到,一個Excel文件就是一個Workbook工作簿,一個文件就會有它存儲地址、名稱、全路徑,我們怎么通過VBA代碼來獲取了?如下:ThisWorkbook 代表的是當(dāng)前正在操作的工作簿,通過Workbook的Name、Path、FullName就可以獲取到這些信息。
在寫VBA的時候,我們又怎么通過代碼來創(chuàng)建一個新的Excel工作簿了?同樣使用Workbooks對象的Add方法就可以創(chuàng)建了,如下圖:
Sub AddNewWorkbook()
Workbooks.AddActiveWorkbook.SaveAs Filename:='C:\Users\HP-PC\Desktop\工作簿1.xlsx', FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
End Sub
新通過Add方法創(chuàng)建一個新的工作簿,然后通過SaveAs存儲到對于的文件夾中,你可以按照我貼的代碼自己執(zhí)行看一下效果。這里要注意,在SaveAs中有一個 FileFormat參數(shù),表示我們在存儲工作簿的時候要存儲為什么類型,如不同的xls/xlsx工作簿,或者xlsm可以保存VBA宏代碼的工作簿等等,有4總類型。大家可以自己試一試。我們創(chuàng)建了一個新的工作簿了,但是我想打開一個已經(jīng)存在的工作簿怎么編寫VBA代碼了,看如下代碼:
Sub OpenWorkbook()
Workbooks.Open Filename:='C:\Users\HP-PC\Desktop\工作簿1.xlsx', UpdateLinks:=False, ReadOnly:=True
End Sub通過Open的方法來打開一個存在的工作簿,大家看我后面還給了兩個其他的參數(shù),這個是我們在使用過程中會經(jīng)常加上的。第一個ReadOnly,如字面意思,就是以只讀方式打開還是可寫的方式打開,只讀的方式打開的時候?qū)τ诠ぷ鞑緝?nèi)修改將不會動到原始的文件,非只讀方式打開就可以保存對工作簿的修改了。第二個Updatelinks,有一種場景,Excel內(nèi)容不多,但是打開卻非常的慢,不管是自己手動雙擊打開,還是通過VBA代碼去打開都很慢,其實很有可能是因為你打開的這個Excel關(guān)聯(lián)了其他的Excel,所以導(dǎo)致你打開的時候會去引用其他的Excel而慢了。UpdateLinks的設(shè)置就是,為True表示加載關(guān)聯(lián)項,未False表示不加載關(guān)聯(lián)項,在設(shè)置了False以后你會發(fā)現(xiàn)Excel打開的速度快多了。
最后一個要吧打開的工作簿關(guān)閉掉,使用Close方法,如下代碼和截圖:
Sub CloseWorkbook()
Workbooks(1).Close SaveChanges:=False
End Sub
運行一下,第一個工作簿關(guān)閉了,可以試一試。 SaveChanges參數(shù)表示存儲的時候是否需要保存對工作簿的修改,True表示要保存修改,如果為False忽略修改