新浪博客

Excel VBA教程:如何引用单元格和区域

2010-08-13 09:21阅读:
Excel VBA教程:如何引用单元格和区域
使用 Visual Basic 的普通任务是指定单元格或单元格区域,然后对该单元格或单元格区域进行一些操作,如输入公式或更改格式。通常用一条语句就能完成操作,该语句可标识单元格,还可更改某个属性或应用某个方法。
在 Visual Basic 中,Range对象既可表示单个单元格,也可表示单元格区域。下列主题说明了标识和处理 Range对象最常用的方法。
请选择:
用 A1 样式记号引用单元格和单元格区域
用编号引用单元格
引用行和列
用快捷记号引用单元格
引用命名单元格区域

相对于其他单元格来引用单元格
用 Range对象引用单元格
引用工作表上的所有单元格
引用多个单元格区域

Excel VBA教程: A1 样式记号引用单元格和单元格区域
可使用 Range属性来引用 A1 引用样式中的单元格或单元格区域。下述子程序将单元格区域 A1:D5 的字体设置为加粗。
Sub FormatRange()
Workbooks('Book1').Sheets('Sheet1').Range('A1:D5') _
.Font.Bold = True
End Sub
下表演示了使用 Range属性的一些 A1 样式引用。
引用
含义
Range('A1')
单元格 A1
Range('A1:B5')
从单元格 A1 到单元格 B5 的区域
Range('C5:D9,G9:H16')
多块选定区域
Range('A:A')
A 列
Range('1:1')
第一行
Range('A:C')
从 A 列到 C 列的区域
Range('1:5')
从第一行到第五行的区域
Range('1:1,3:3,8:8')
第 1、3 和 8 行
Range('A:A,C:C,F:F')
A 、C 和 F 列

Excel VBA教程:用编号引用单元格
通过使用行列编号,可用Cells属性来引用单个单元格。该属性返回代表单个单元格的 Range对象。下例中,Cells(6,1) 返回 Sheet1 上的单元格 A6,然后将 Value属性设置为 10。
Sub EnterValue()
Worksheets('Sheet1').Cells(6, 1).Value = 10
End Sub
因为可用变量替代编号,所以 Cells属性非常适合于在单元格区域中循环,如下例所示。
Sub CycleThrough()
Dim Counter As Integer
For Counter = 1 To 20
Worksheets('Sheet1').Cells(Counter, 3).Value = Counter
Next Counter
End Sub
注意 如果要同时更改某一单元格区域中所有单元格的属性或对其应用方法,可使用Range属性。有关详细信息,请参阅用 A1 样式记号引用单元格

Excel VBA教程:引用行和列
可用Rows属性或Columns属性来处理整行或整列。这两个属性返回代表单元格区域的 Range对象。下例中,用Rows(1) 返回 Sheet1 上的第一行,然后将单元格区域的 Font对象的 Bold属性设置为 True。
Sub RowBold()
Worksheets('Sheet1').Rows(1).Font.Bold = True
End Sub
下表举例说明了使用 Rows 和 Columns属性的一些行和列的引用。
引用
含义
Rows(1)
第一行
Rows
工作表上所有的行
Columns(1)
第一列
Columns('A')
第一列
Columns
工作表上所有的列

若要同时处理若干行或列,请创建一个对象变量并使用 Union方法,将对 Rows属性或 Columns属性的多个调用组合起来。下例将活动工作簿中第一张工作表上的第一行、第三行和第五行的字体设置为加粗。
Sub SeveralRows()
Worksheets('Sheet1').Activate
Dim myUnion As Range
Set myUnion = Union(Rows(1), Rows(3), Rows(5))
myUnion.Font.Bold = True
End Sub

Excel VBA教程:用快捷记号引用单元格
可用方括号将 A1 引用样式或命名区域括起来,作为Range属性的快捷方式。这样就不必键入单词“Range”或使用引号,如下例所示。
Sub ClearRange()
Worksheets('Sheet1').[A1:B5].ClearContents
End Sub
Sub SetValue()
[MyRange].Value = 30
End Sub

Excel VBA教程:引用命名区域

用名称比用 A1 样式记号更容易标识单元格区域。若要命名选定的单元格区域,请单击编辑栏左端的名称框,键入名称,再按 Enter。

引用命名区域

下例引用了名为“MyBook.xls”的工作簿中的名为“MyRange”的单元格区域。
Sub FormatRange()
Range('MyBook.xls!MyRange').Font.Italic = True
End Sub
下例引用名为“Report.xls”的工作簿中的特定工作表单元格区域“Sheet1!Sales”。
Sub FormatSales()
Range('[Report.xls]Sheet1!Sales').BorderAround Weight:=xlthin
End Sub
若要选定命名区域,请用 GoTo方法,该方法将激活工作簿和工作表,然后选定该区域。
Sub ClearRange()
Application.Goto Reference:='MyBook.xls!MyRange'
Selection.ClearContents
End Sub
下例显示对于活动工作簿将如何编写相同的过程。
Sub ClearRange()
Application.Goto Reference:='MyRange'
Selection.ClearContents
End Sub

在命名区域中的单元格上循环

下例用 For Each...Next 循环语句在命名区域中的每一个单元格上循环。如果该区域中的任一单元格的值超过limit 的值,就将该单元格的颜色更改为黄色。
Sub ApplyColor()
Const Limit As Integer = 25
For Each c In Range('MyRange')
If c.Value > Limit Then

我的更多文章

下载客户端阅读体验更佳

APP专享