分享

Excel 最基础的VBA知识

 cshts 2012-09-12
一、单元格对象的三种表示方法
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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多