ExcelVBA如何存放代碼?
親,是這樣的。2003版的確可以保存帶VBA代碼的文件,不用更改擴展名。但是,您也一定發現,當你要運行宏時,必須在安全性設置里啟用宏,比較麻煩。
2007版以上進行了改進,可以直接把帶VBA代碼的文件另存為xlsm。這樣,打開這個文件,可以直接運行宏。
excelvba目錄結構?
1、打開事先準備好的Excel文件2、工具欄/開發工具/VisualBasic,打開MicrosoftVisualBasic,也可使用快捷鍵AltF11,3、然后,選擇VBAProject/MicrosoftExcel對象/sheet1(sheet1),在右邊窗口輸入以下程序:Sub根據工作表創建目錄()DimiAsInteger,BiaoAsWorksheeti2ForEachBiaoInWorksheetsCells(i,A)i1NextBiaoEndSub程序已經編制完成!
4、最后,工具欄/開發工具/宏(快捷鍵AltF8),查看宏,選擇已編制好的宏“根據工作表創建目錄”,執行,就會根據工作表創建對應目錄。
也可直接在MicrosoftVisualBasic中執行,工具欄/運行/運行子過程/用戶窗體,或者直接點擊菜單欄中類似于三角形的按鍵。
ExcelVBA選取單元格有哪些方法和技巧?
VBA選取單元格的8種方法
本技巧目的:掌握單元格的各種引用方法
Excel就是由基本元素--單元格構成的,它就像我們身體的細胞一樣,可是非常重要的,千萬不能小看它的作用。不論是學習vba還是操作Excel本身,最先接觸到的就是單元格,只有熟練的掌握了,才能進行后續的操作。注意:下面所有的標點符號全部使用半角,或者說英文標點。代碼中不區分大小寫。使用代碼助手可以實現代碼的快速輸入。代碼助手下載地址Range屬性
單個單元格的表示方法:
表示方法:Sheet1.Range(A1)
注釋:1)工作表Sheet1的單元格:A1,書寫格式:Sheet1.Range(英文字母數字)2)保持良好的習慣加上工作表名稱,對于后續跨工作表的操作會減少很多的問題。就像寄快遞時要把小區的每棟樓的編號寫上一樣,不會發生快遞寄到隔壁樓的問題喲。單元格地址選中使用命令:.SelectSheet1.Range(A1).Select多個單元格的表示方法:
連續單元格:A3到C6單元格表示方法:Sheet1.range(A3:C6)注釋:1)書寫方法:Sheet1.(英文字母數字:英文字母數字)2)首尾單元格之間用:連接二組連續單元格,組合起來的方法:A3到C6單元格,E7到G11單元格表示方法:Sheet1.range(A3:C6,E7:G11)Sheet1.range(A3:C6,E7:G11).Select注釋:1)書寫方法:Sheet1.(英文字母數字:英文字母數字,英文字母數字:英文字母數字)2)二組不連續的地址,中間用,分隔3)要點:連續單元格:首尾之間用:來連接,二段不連續的單元格組合用,分隔2.Cells屬性
小技巧:安裝代碼助手后,alt數字0:可以快速轉換列號為數字或者英文字母單個單元格:
表示方法:sheet1.cells(1,1)或者sheet1.cells(1,A)注釋:1)括號內前面代表:行后面代表:列,用,分隔2)二種方法:①前后都使用數字②前面使用數字,后面用英文字母代表列號③注意:英文字母要加雙引號多個單元格的表示方法:
連續單元格:B2到D7單元格表示方法:sheet1.Range(sheet1.cells(2,2),sheet1.cells(7,4))或者sheet1.Range(sheet1.cells(2,B),sheet1.cells(7,D))注釋:書寫方法:sheet1.range(工作表名稱.左上方單元格,工作表名稱.右下方單元格)Range和Cells總結:
1)Range和Cells書寫方法不同:Range(A1)和Cells(1,1)或者Cells(1,A)所指的單元格是相同的2)Range:寫好后,后面加上.系統會出現提示,Cells沒有3)Range:可以表示連續的單元格4)Cells:更方便,直接寫行,列號,中間用英文逗號分隔,不需要使用字符串拼接。它是在循環中根據行列號訪問的主要手段例如:Range(Aamp)Cells(,A)3.方括號[]
Sheet1.Range(A1)可以寫成sheet1.[A1]Sheet1.range(A1:C1)可以寫成sheet1.[A1:C1]注意:只能使用列號的英文字母或者行號數字,不能使用變量4.Offset屬性
Offset的使用方法:以某單元格作為起點,然后以他為起點向上下,左右偏移。
1)需求:當用戶選中單元格后,需要在選中的單元格左上單元格寫入數字1,且選中單元格是未知的。2)有了Offset屬性,只需要在Selection后輸入偏移的行列號,就能實現輸入。3)實現方法:(-1,-1)1這樣書寫是不是很方便呢?二種方法:使用offset,假設以B3為起點,這個起點位置可以根據自己的要求來設定。書寫方法:Sheet1.range(B3).offset(0,1)注釋:1)代表:B3開始,不偏移行,向右偏移一列,即C3單元格2)offset括號內前面數字代表行,后面數字代表列3)數字0代表:不偏移4)數字-1代表:向上或者向左偏移例如1:Sheet1.range(B4).offset(-1,1)即:B4向上偏移一行,向右偏移一列,即C3單元格例如2:Sheet1.range(D5).offset(-2,-1)即:D5向上偏移二行,向左偏移一列,即C3單元格使用range或者cells,假設以B3為起點,這個起點位置可以根據自己的要求來設定。書寫方法:sheet1.range(B3).cells(1,2)或者sheet1.range(B3).range(B1)注釋:1)上面書寫方法代表:B3開始,不偏移行,向右偏移一列,即C3單元格2)詳解:①不能向上或者向左偏移②數字1代表:本行,本列③數字2代表:向下1行或者向右1列④數字3代表:向下2行或者向右2列⑤后面以此類推,每增加1,偏移也增加1⑥Range中的英文字母可以當作數字來看即B代表數字2,C代表數字35.Resize屬性
要求:表示上圖的B3:E10單元格同理:首先以某單元格作為起點,然后以他為坐標向上下,左右擴展。這里是使用擴展哦。好處和前面說的Offset是一樣的:修改方便,另外即使是未知位置單元格也能擴展。書寫方法:Sheet1.Range(B3).Resize(8,4)注釋:1)上面書寫方法代表:B3開始,(含本行本列)共擴展8行,4列,即B3:E10單元格2)詳解:①數字1代表:本行,本列②數字2代表擴展:向下1行或者向右1列③數字3代表擴展:向下2行或者向右2列④后面以此類推,每增加1,擴展也增加1offset,resize組合聯合使用這兩個屬性是可以組合使用的。這樣對于后期的改動會更為方便快捷。
要求:表示C3:E9單元格書寫方法:Sheet1.Range(A1).Offset(2,2).Resize(7,3)注釋:1)A1單元格偏移:向下2行向右2列再擴展:向下7行向右3列2)偏移,擴展可以前后隨意組合Offset、Range和Resize總結
6.Union屬性
連接二個不連續的區域:B3:D8,G10:I15書寫方法:Union(Sheet1.Range(B3:D8),Sheet1.Range(G10:I15))7.Usedrange屬性
書寫方法:注釋:1)確定Sheet1的已使用區域2)該代碼所表示的地址為:A1:D7
書寫方法:注釋:1)該代碼所表示的地址為:A1:G112)注意:F10:G10區域即使為空格,表示的地址也會是A1:G118.CurrentRegion屬性
書寫方法:Sheet1.Range(A1).CurrentRegion注釋:1)以A1為起點的連續區域2)該代碼表示的地址為:A1:D7書寫方法:Sheet1.Range(F10).CurrentRegion注釋:該代碼表示的地址為:F10:G11
