Excel-VBA-编程教程(完整新版)excel高级教程== 联系客服

发布时间 : 星期三 文章Excel-VBA-编程教程(完整新版)excel高级教程==更新完毕开始阅读869b069cbfd5b9f3f90f76c66137ee06eef94e4f

Excel_VBA_编程教程(完整版)excel高级教程

VBA - Excel编程概念之:【单元格和区域】一、如何引用单元格和区域

使用 Visual Basic 的普通任务是指定单元格或单元格区域,然后对该单元格或单元格区域进行一些操作,如输入公式或更改格式。通常用一条语句就能完成操作,该语句可标识单元格,还可更改某个属性或应用某个方法。

在 Visual Basic 中,Range 对象既可表示单个单元格,也可表示单元格区域。下列主题说明了标识和处理 Range 对象最常用的方法。 用 A1 样式记号引用单元格和单元格区域

可使用 Range 属性来引用 A1 引用样式中的单元格或单元格区域。下述子程序将单元格区域 A1:D5 的字体设置为加粗。

Sub FormatRange()

Workbooks(\ .Font.Bold = True

End Sub 下表演示了使用 Range 属性的一些 A1 样式引用。 引用 含义

Range(\ 单元格 A1

Range(\ 从单元格 A1 到单元格 B5 的区域 Range(\ 多块选定区域 Range(\ A 列 Range(\ 第一行

Range(\ 从 A 列到 C 列的区域 Range(\ 从第一行到第五行的区域 Range(\ 第 1、3 和 8 行 Range(\ A 、C 和 F 列 用编号引用单元格

通过使用行列编号,可用 Cells 属性来引用单个单元格。该属性返回代表单个单元格的 Range 对象。下例中,Cells(6,1) 返回 Sheet1 上的单元格 A6,然后将 Value 属性设置为 10。

Sub EnterValue()

Worksheets(\因为可用变量替代编号,所以 Cells 属性非常适合于在单元格区域中循环,如下例所示。

1 / 10

Sub CycleThrough()

Dim Counter As Integer For Counter = 1 To 20

Worksheets(\ Next Counter

End Sub注意 如果要同时更改某一单元格区域中所有单元格的属性或对其应用方法,可使用 Range 属性。有关详细信息,请参阅用 A1 样式记号引用单元格。 引用行和列

可用 Rows 属性或 Columns 属性来处理整行或整列。这两个属性返回代表单元格区域的 Range 对象。下例中,用 Rows(1) 返回 Sheet1 上的第一行,然后将单元格区域的 Font 对象的 Bold 属性设置为 True。

Sub RowBold()

Worksheets(\

End Sub下表举例说明了使用 Rows 和 Columns 属性的一些行和列的引用。 引用 含义 Rows(1) 第一行

Rows 工作表上所有的行 Columns(1) 第一列 Columns(\ 第一列

Columns 工作表上所有的列

若要同时处理若干行或列,请创建一个对象变量并使用 Union 方法,将对 Rows 属性或 Columns 属性的多个调用组合起来。下例将活动工作簿中第一张工作表上的第一行、第三行和第五行的字体设置为加粗。 Sub SeveralRows()

Worksheets(\ Dim myUnion As Range

Set myUnion = Union(Rows(1), Rows(3), Rows(5)) myUnion.Font.Bold = True End Sub

用快捷记号引用单元格

可用方括号将 A1 引用样式或命名区域括起来,作为 Range 属性的快捷方式。这样就不必键入单词“Range”或使用引号,如下例所示。

2 / 10

Sub ClearRange()

Worksheets(\End Sub

Sub SetValue()

[MyRange].Value = 30 End Sub 引用命名区域

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

引用命名区域下例引用了名为“MyBook.xls”的工作簿中的名为“MyRange”的单元格区域。

Sub FormatRange()

Range(\

End Sub下例引用名为“Report.xls”的工作簿中的特定工作表单元格区域“Sheet1!Sales”。

Sub FormatSales()

Range(\

End Sub若要选定命名区域,请用GoTo方法,该方法将激活工作簿和工作表,然后选定该区域。

Sub ClearRange()

Application.Goto Reference:=\ Selection.ClearContents

End Sub下例显示对于活动工作簿将如何编写相同的过程。

Sub ClearRange()

Application.Goto Reference:=\ Selection.ClearContents

End Sub在命名区域中的单元格上循环下例用 For Each...Next 循环语句在命名区域中的每一个单元格上循环。如果该区域中的任一单元格的值超过 limit 的值,就将该单元格的颜色更改为黄色。 Sub ApplyColor()

Const Limit As Integer = 25

For Each c In Range(\ If c.Value > Limit Then

c.Interior.ColorIndex = 27 End If

3 / 10

Next c End Sub

相对于其他单元格来引用单元格

处理相对于另一个单元格的某一单元格的常用方法是使用 Offset 属性。下例中,将位于活动工作表上活动单元格下一行和右边三列的单元格的内容设置为双下划线格式。

Sub Underline()

ActiveCell.Offset(1, 3).Font.Underline = xlDouble

End Sub注意可录制使用 Offset 属性(而不是绝对引用)的宏。在“工具”菜单上,指向“宏”,再单击“录制新宏”,然后单击“确定”,再单击录制宏工具栏上的“相对引用”按钮。

若要在单元格区域中循环,请在循环中将变量与 Cells 属性一起使用。下例以 5 为步长,用 5 到 100 之间的值填充第三列的前 20 个单元格。变量 counter 用作 Cells 属性的行号。

Sub CycleThrough()

Dim counter As Integer For counter = 1 To 20

Worksheets(\ Next counter End Sub

用 Range 对象引用单元格

如果将对象变量设置为 Range 对象,即可用变量名方便地操作单元格区域。 下述过程创建了对象变量myRange,然后将活动工作簿中 Sheet1 上的单元格区域 A1:D5 赋予该变量。随后的语句用该变量代替该区域对象,以修改该区域的属性。

Sub Random()

Dim myRange As Range

Set myRange = Worksheets(\ myRange.Formula = \ myRange.Font.Bold = True End Sub

4 / 10