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