VBA

VBA-Excel中单元格的引用方法

使用VBA对Excel中的单元格或单元格区域进行选择有很多种方法,可以归结为两大类:

  • 使用行列数进行选择
  • 根据已经选择的单元格(区域)进行再选择

1、使用range属性

VBA中可以使用range属性返回某个单元格或者单元格区域。

  • 一个单元格:range("a1")
  • 单元格区域:range(“a1:b3”)
Sub 选择1()Range("a1").Select '选择一个单元格,默认选择目前活动窗口Range("a1:b3").Select '选择一个区域Sheet1.Range("a1").Select '指定表格的区域
End Sub

2、使用cells属性

该函数的格式为:Cells(RowIndex, ColumnIndex),参数分别为行数和列数,使用阿拉伯数字,但是需要注意的是该函数只能选择一个单元格,不可以选择多个单元格,除非使用循环函数。

Sub 选择2()Sheet1.Cells(1, 2).Select '指定一个单元格Dim i As IntegerFor i = 1 To 10Sheet1.Cells(i, 1).Value = i '对指定单元格区域填充文字Next
End Sub

3、使用快捷符号

[]可以实现对单元格的快捷选择功能,格式和range有一些类似

Sub 选择3()[a1].Select '选择一个单元格[a1,b3].Select '选择两个单元格[a1:b3].Select '选择单元格区域
End Sub

4、使用offset属性

该函数基于已选择的单元格或区域向下(右)移动多少个单位,其格式为:
.offset(rowoffset,coloffset),分别代表移动的行数和列数,若需向左或下移动则可以使用负号(-)。

Sub 选择4()Sheet1.Range("a1").Offset(1, 1).Select '选择a1单元格下一行,右一列Sheet1.Range("a1:c3").Offset(2, 2).Select '选择一个区域Sheet1.Range("b2").Offset(-1, -1).Select[a1].Offset(1, 1).Select '选择b2单元格[a1:b3].Offset(1, 1).Select '选择单元格区域
End Sub

5、使用resize属性

该函数基于原选择的区域作为左上角进行扩充选择,返回为一个区域。格式为:.Resize(RowSize, ColumnSize),分别代表最终选择区域的行数和列数。

Sub 选择5()Sheet1.Range("a1").Resize(2, 2).Select '形成一个2×2的单元格区域Sheet1.Range("b1:b2").Resize(3, 3).Select 'b1为左上角单元格形成3×3的区域[a1].Resize(2, 2).Select '也可以进行选择
End Sub

6、使用union方法

使用 Union 方法可以将多个非连续区域连接起来成为一个区域,从而可以实现对多个非连续区域一起进行操作,格式为:.Union(Arg1, Arg2, ...)

Sub 选择6()Union(Sheet1.Range("a1"), Sheet1.Range("b3")).Select '选择两个单元格Union(Sheet1.Range("a1:b3"), Sheet1.Range("c4:f8")).Select '选择两个区域
End Sub

7、使用usedrange属性

返回指定工作表上已使用单元格组成的区域,为一个矩形区域。

Sub 选择7()Sheet1.UsedRange.Select
End Sub

8、使用currentregion属性

该函数返回指定工作表上当前的区域

Sub 选择8()Sheet1.Range("a1").CurrentRegion.Select
End Sub