Excel 最基礎的VBA知識
07-11
一、單元格對象的三種表示方法1. Range表示方式Range屬性返回一個單元格或者單元格區域。VBA操作 立即窗口輸入選擇單個單元格(例如A5) Range("A5").Select選擇一個單元格區域(例如A6:A10) Range("A6:A10").Select選擇一些不相鄰的單元格(例如A1, B6, C8) Range("A1, B6, C8").Select選擇一些不相鄰的單元格和單元格區域(例如A11:D11, C12, D3) Range("A11:D11, C12, D3").Select2. 中括弧方式引用單元格(快捷表示方式)[a1]方式引用單元格是在左、右方括弧直接錄入單元格或者區域地址來引用目標的方式,它不區分大小寫,也不區分相對引用還是絕對引用。例如以下幾種方式都是合法單元格引用[a1] ——表示引用單元格A1[B$10] ——表示引用單元格B10[D2:F500] ——表示引用D2:F500區域[D2,F2] ——表示引用D2和F2兩個單元格3. Cells表示方式當你要選擇一個確定的單元格時,Cells屬性要求兩個自變數,第一個是行號,第二個是列號或者列字母。VBA操作 立即窗口輸入選擇單個單元格(例如A5) Cells(5, 1).Select或Cells(5, A).Select選擇一個單元格區域(例如A6:A10) Range(Cells(6, 1), Cells(10, 1)).Select選擇工作表中所有單元格 Cells.Select4. 三種表示方式比較Range:最常用,參數中可使用變數,代碼執行效率較高。 代碼錄入較費時。Cells: 參數可以使用變數,適於循環語句, 不能表示單元格區域。[]: 代碼輸入快捷方便, 參數中不能使用變數,代碼執行效率低。例如:『Range 參數使用變數Private Sub Range_Var()Dim strParam As StringstrParam=」C」Range(strParam)=100End Sub『Cells 引用方式常用於循環中Private Sub FillCells()Dim I As Interger, j As IntegerFor I = 1 To 10For j =1 To 5Cells(I,j).Value=i*jNext jNext iEnd Sub5. 非活動工作表中單元格的表示(常見1004錯誤)Worksheets(「Sheet1」).Range(「C10」)WorksheetFunction.Sum(Worksheets(「Sheet2」).Range(Worksheets(「Sheet2」).Range(「A1」),Workssheets(「Sheet2」).Range(「A10」))) 對於非活動工作表中單元格的表示必須要寫上Worksheets(「表的名稱」),上面的表達式若不包含下劃線的引用,則會得到常見的1004錯誤。二、單元格對象常用屬性和方法1. Value屬性和Text屬性Value (單元格值):?Range(「A1」).ValueText(單元格文本)? Range (「A1」).Text (將格式設置成年月日)2. Offsets屬性 Resize屬性Offset屬性使用兩個自變數來獲得新單元格區域的地址。第一個自變數表示行偏移,第二個自變數則表示列偏移VBA操作 立即窗口輸入選擇單元格A1下面一行和右邊三列的單元格 Range("A1").Offset(1, 3).Select選擇單元格D15上面兩行和左邊一列的單元格 Range("D15").Offset(-2, -1).Select選擇當前單元格上面一行的單元格(同列) ActiveCell.Offset(-1, 0).SelectResize (行,列):調整單元格區域大小3. End屬性 Address屬性如果你經常需要訪問你工作表裡某些遙遠的單元格,在VBA中,你可以使用End屬性快速地移動到遙遠的單元格。VBA操作 立即窗口輸入選擇任何行的最後一個單元格 ActiveCell.End(xlright).Select選擇任何列的最後單元格 ActiveCell.End(xldown).Select選擇任何行的第一個單元格 ActiveCell.End(xleft).Select選擇任何列的第一個單元格 ActiveCell.End(xlup).SelectAddress屬性返回Range對象的地址 Range(「A1」).AddressRange (「A1:A10」).Address (返回絕對地址)?Range(「A1」).Address(0,0) (返回相對地址)4. Range屬性 Cells屬性Range屬性:返回Range對象的相對引用,在使用相對引用錄製宏時常見Range (「C3」).Range(「B2」)Cells屬性:Cell(1,1) Cells (2)?Range(「B2:D10」).Range(「B2」).Address:(將B2單元格看成是A1作為參照物,去找第B列第2行,返回的是相對引用)結果是:$c$3Range(「B2;D10」).Cells(2,2).Address (同上)Cells(5): 同上 (選中B2:D10區域,若B2是1,從左往右數到D是3,然後從頭再從左往右數,5是C3)5. Select方法和Activate方法Range(「B2:D10」).Select (選中區域)Selection.Address: Excel返回的是當前被選擇的單元格的絕對地址?ActiveCell.Address ($B$2 返回的是當前活動單元格) (激活該單元格,可以馬上錄入數據)兩者效果一樣的情況:當選中的單元格區域不在要選擇或激活單元格內,譬如先選中A1:D3Range(「E12」).Select (選中E12)(E12不在A1:D3內)Range(「E12」).Active (選中E12)6. Clear等常用方法Clear: 清楚單元格內容和格式;ClearContents清除單元格的內容ClearFormats清除單元格的格式Range(「B2」).Clear Range(「B2」).Clearcontents Range(「B2」).ClearFormats
推薦閱讀:
推薦閱讀:
※Word技巧 || 什麼?Word表格也能像Excel一樣自動填充和計算數據?
※消除Excel中無意義的「0」
※[Excel小課堂] LOOKUP三兄弟,你都了解些啥?
※Excel函數集
※Excel日期函數