Ghost32 - 安全的系统软件下载站!

ghost32怎么安装系统|装机必备|最新专题|最近更新

当前位置:首页 > 系统文章 > office教程

VBA代码下引用Excel单元格区域的技巧

时间:2018-08-27 16:23:18 来源: 点击:
手机扫码继续观看
VBA代码下引用Excel单元格区域的技巧

如何选择当前工作表中的单元格?

例如,可以使用下面的代码选择当前工作表中的单元格D5:

ActiveSheet.Cells(5, 4).Select

或:ActiveSheet.Range("D5").Select

如何选择同一工作簿中其它工作表上的单元格?

例如,要选择同一工作簿中另一工作表上的单元格E6,可以使用下面的代码:

Application.Goto ActiveWorkbook.Sheets("Sheet2").Cells(6, 5)

或:Application.Goto (ActiveWorkbook.Sheets("Sheet2").Range("E6"))

也可以先激活该工作表,然后再选择:

Sheets("Sheet2").Activate

ActiveSheet.Cells(6, 5).Select

如何选择不同工作簿中的单元格?

例如,要选择另一工作簿中的一个工作表上的单元格F7,可以使用下面的代码:

Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Cells(7, 6)

或:Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("F7")

也可以先激活该工作簿中的工作表,然后再选择:

Workbooks("BOOK2.XLS").Sheets("Sheet1").Activate

ActiveSheet.Cells(7, 6).Select

如何选择当前工作表中的单元格区域?

例如,要选择当前工作表中的单元格区域C2:D10,可以使用下面的代码:

ActiveSheet.Range(Cells(2, 3), Cells(10, 4)).Select

或:ActiveSheet.Range("C2:D10").Select

或:ActiveSheet.Range("C2", "D10").Select

如何选择同一工作簿中另一工作表上的单元格区域?

例如,要选择同一工作簿中另一工作表上的单元格区域D3:E11,可以使用下面的代码:

Application.Goto ActiveWorkbook.Sheets("Sheet3").Range("D3:E11")

或:Application.Goto ActiveWorkbook.Sheets("Sheet3").Range("D3", "E11")

也可以先激活该工作表,然后再选择:

Sheets("Sheet3").Activate

ActiveSheet.Range(Cells(3, 4), Cells(11, 5)).Select

如何选择不同工作簿中工作表上的单元格区域?

例如,要选择另一工作簿中某工作表上的单元格区域E4:F12,可以使用下面的代码:

Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("E4:F12")

或:Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("E4", "F12")

也可以先激活该工作表,然后再选择:

Workbooks("BOOK2.XLS").Sheets("Sheet1").Activate

ActiveSheet.Range(Cells(4, 5), Cells(12, 6)).Select

如何在当前工作表中选择命名区域?

例如,要选择当前工作表中名为“Test”的区域,可以使用下面的代码:

Range("Test").Select

或:Application.Goto "Test"

如何选择同一工作簿中另一工作表上的命名区域?

例如,选择同一工作簿中另一工作表上名为“Test”的区域,可使用下面的代码:

Application.Goto Sheets("Sheet1").Range("Test")

也可以先激活工作表,再选择:

Sheets("Sheet1").Activate

Range("Test").Select

如何选择不同工作簿中工作表上的命名区域?

例如,要选择不同工作簿中工作表上名为“Test”的区域,可使用下面的代码:

Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet2").Range("Test")

也可以先激活工作表,再选择:

Workbooks("BOOK2.XLS").Sheets("Sheet2").Activate

Range("Test").Select

如何选择与当前单元格相关的单元格?

例如,要选择距当前单元格下面5行左侧4列的单元格,可以使用下面的代码:

ActiveCell.Offset(5, -4).Select

要选择距当前单元格上方2行右侧3列的单元格,可以使用下面的代码:

ActiveCell.Offset(-2, 3).Select

注意:一定要保证当前单元格与所选单元格之间的距离在工作表范围内,否则会出错。

如何选择与另一单元格(不是当前单元格)相关的单元格?

例如,要选择距单元格C7下方5行右侧4列的单元格,可以使用下面的代码:

ActiveSheet.Cells(7, 3).Offset(5, 4).Select

或:ActiveSheet.Range("C7").Offset(5, 4).Select

如何选择偏离指定区域的一个单元格区域?

例如,要选择与名为“Test”的区域大小相同但在该区域下方4行右侧3列的一个区域,可以使用下面的代码:

ActiveSheet.Range("Test").Offset(4, 3).Select

如果该命名区域不在当前工作表中,可以先激活该工作表,然后再选择,如下面的代码:

Sheets("Sheet3").Activate

ActiveSheet.Range("Test").Offset(4, 3).Select

如何选择一个指定的区域并扩展区域的大小?

例如,要选择当前工作表中名为“Database”区域,然后将该区域向下扩展5行,可以使用下面的代码:

Range("Database").Select

Selection.Resize(Selection.Rows.Count + 5, Selection.Columns.Count).Select

如何选择一个指定的区域,再偏离,然后扩展区域的大小?

例如,选择名为“Database”区域下方4行右侧3列的一个区域,然后扩展2行和1列,可以使用下面的代码:

Range("Database").Select

Selection.Offset(4, 3).Resize(Selection.Rows.Count + 2, Selection.Columns.Count + 1).Select

如何选择两个或多个指定区域?

例如,为了同时选择名为“Test”和“Sample”的两个区域,可以使用下面的代码:

Application.Union(Range("Test"), Range("Sample")).Select

注意,这两个区域须在同一工作表中,如下面的代码:

Set y = Application.Union(Range("Sheet1!A1:B2"), Range("Sheet1!C3:D4"))

但Union方法不能处理不同工作表中的区域,可下面的代码:

Set y = Application.Union(Range("Sheet1!A1:B2"), Range("Sheet2!C3:D4"))

将会出错。

如何选择两个或多个指定区域的交叉区域?

例如,要选择名为“Test”和“Sample”的两个区域的交叉区域,可以使用下面的代码:

Application.Intersect(Range("Test"), Range("Sample")).Select

注意,两个区域必须在同一工作表中。

= = = = = = = = = = = = = = = = = = = = = = = = =

下面的示例使用了如下图所示的工作表。

如何选择连续数据列中的最后一个单元格?

例如,要选择一个连续列中的最后一个单元格,可以使用下面的代码:

ActiveSheet.Range("a1").End(xlDown).Select

该代码使用在上面的工作表中,单元格A4被选择。

如何选择连续数据列底部的空单元格?

例如,要选择连续单元格区域下面的单元格,可以使用下面的代码:

ActiveSheet.Range("a1").End(xlDown).Offset(1, 0).Select

该代码使用在上面的工作表中,单元格A5被选择。

如何选择某列中连续数据单元格区域?

例如,要选择一列中的连续数据单元格区域,可以使用下面的代码:

ActiveSheet.Range("a1", ActiveSheet.Range("a1").End(xlDown)).Select

或:ActiveSheet.Range("a1:" & ActiveSheet.Range("a1").End(xlDown).Address).Select

该代码使用在上面的工作表中,单元格区域A1:A4将被选择。

如何选择某列中非连续数据单元格区域?

例如,要选择某列中非连续数据单元格区域,可以使用下面的代码:

ActiveSheet.Range("a1", ActiveSheet.Range("a65536").End(xlUp)).Select

或:ActiveSheet.Range("a1:" & ActiveSheet.Range("a65536").End(xlUp).Address).Select

该代码使用在上面的工作表中,单元格区域A1:A6将被选择。

如何选择一个矩形(规则的)单元格区域?

要选择围绕某单元格的一个矩形区域,可以使用CurrentRegion方法。CurrentRegion方法将选择四周被空行和空列围绕的区域,如下面的代码:

ActiveSheet.Range("a1").CurrentRegion.Select

该代码使用在上面的工作表中,将选择单元格区域A1:C4。也可以使用下面的代码:

ActiveSheet.Range("a1", ActiveSheet.Range("a1").End(xlDown).End(xlToRight)).Select

或:

ActiveSheet.Range("a1:" & ActiveSheet.Range("a1").End(xlDown).End(xlToRight).Address).Select

若想选择单元格区域A1:C6,可使用下面的代码:

lastCol = ActiveSheet.Range("a1").End(xlToRight).Column

lastRow = ActiveSheet.Cells(65536, lastCol).End(xlUp).Row

ActiveSheet.Range("a1", ActiveSheet.Cells(lastRow, lastCol)).Select

或:

lastCol = ActiveSheet.Range("a1").End(xlToRight).Column

lastRow = ActiveSheet.Cells(65536, lastCol).End(xlUp).Row

ActiveSheet.Range("a1:" & ActiveSheet.Cells(lastRow, lastCol).Address).Select

= = = = = = = = = = = = = = = = = = = =

如何选择多个不同长度的非连续列?

例如,有下图所示的工作表:

要同时选择A列和C列中的数据,即单元格区域A1:A3和C1:C6,可使用下面的代码:

StartRange = "A1"

EndRange = "C1"

Set a = Range(StartRange, Range(StartRange).End(xlDown))

Set b = Range(EndRange, Range(EndRange).End(xlDown))

Union(a, b).Select

= = = = = = = = = = = = = = = = = = = =

注:使用Application.Goto方法,如果指定另一工作表(不是当前工作表)中的指定区域,在Range属性中使用两个Cells属性时,则必须包括Sheets对象,如:

Application.Goto Sheets("Sheet1").Range(Sheets("Sheet1").Range(Sheets("Sheet1").Cells(2, 3), Sheets("Sheet1").Cells(4, 5)))

= = = = = = = = = = = = = = = = = = = =

在VBA中,Range 对象既可表示单个单元格,也可表示单元格区域。下面的内容说明了标识和处理Range对象最常用的方法。

引用工作表上的所有单元格

如果对工作表应用 Cells 属性时不指定索引号,该方法将返回代表工作表上所有单元格的 Range 对象。以下 Sub 过程清除活动工作簿中 Sheet1 上的所有单元格的内容。

Sub ClearSheet()

Worksheets("Sheet1").Cells.ClearContents

End Sub

使用 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 列

上一篇:Word文档下超链接的设置技巧

下一篇:Excel表格技巧:让你的工作效率翻翻!

相关文章

网友评论(共有 0 条评论)

请自觉遵守互联网相关政策法规,评论内容只代表网友观点,与本站立场无关!

最新评论