一、单元格对象的三种表示方法 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").Select 2. 中括号方式引用单元格(快捷表示方式) [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.Select 4. 三种表示方式比较 Range:最常用,参数中可使用变量,代码执行效率较高。 代码录入较费时。 Cells: 参数可以使用变量,适于循环语句, 不能表示单元格区域。 []: 代码输入快捷方便, 参数中不能使用变量,代码执行效率低。 例如: ‘Range 参数使用变量 Private Sub Range_Var() Dim strParam As String strParam=”C” Range(strParam)=100 End Sub ‘Cells 引用方式常用于循环中 Private Sub FillCells() Dim I As Interger, j As Integer For I = 1 To 10 For j =1 To 5 Cells(I,j).Value=i*j Next j Next i End Sub 5. 非活动工作表中单元格的表示(常见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”).Value Text(单元格文本)? 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).Select Resize (行,列):调整单元格区域大小 3. End属性 Address属性 如果你经常需要访问你工作表里某些遥远的单元格,在VBA中,你可以使用End属性快速地移动到遥远的单元格。 VBA操作 立即窗口输入 选择任何行的最后一个单元格 ActiveCell.End(xlright).Select 选择任何列的最后单元格 ActiveCell.End(xldown).Select 选择任何行的第一个单元格 ActiveCell.End(xleft).Select 选择任何列的第一个单元格 ActiveCell.End(xlup).Select Address属性返回Range对象的地址 Range(“A1”).Address Range (“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$3 Range(“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:D3 Range(“E12”).Select (选中E12)(E12不在A1:D3内) Range(“E12”).Active (选中E12) 6. Clear等常用方法 Clear: 清楚单元格内容和格式; ClearContents清除单元格的内容 ClearFormats清除单元格的格式 Range(“B2”).Clear Range(“B2”).Clearcontents Range(“B2”).ClearFormats |
|