目录
1)如何选择当前工作表中的单元格?
2)如何选择同一工作簿中其它工作表上的单元格?
3)如何选择不同工作簿中的单元格?
4)如何选择当前工作表中的单元格区域?
5)如何选择同一工作簿中另一工作表上的单元格区域?
6)如何选择不同工作簿中工作表上的单元格区域?
7)如何在当前工作表中选择命名区域?
8)如何选择同一工作簿中另一工作表上的命名区域?
9)如何选择不同工作簿中工作表上的命名区域?
10)如何选择与当前单元格相关的单元格?
11)如何选择与另一单元格(不是当前单元格)相关的单元格?
12)如何选择偏离指定区域的一个单元格区域?
13)如何选择一个指定的区域并扩展区域的大小?
14)如何选择一个指定的区域,再偏离,然后扩展区域的大小?
15)如何选择两个或多个指定区域?
16)如何选择两个或多个指定区域的交叉区域?
17)如何选择连续数据列中的最后一个单元格?
18)如何选择连续数据列底部的空单元格?
19)如何选择某列中连续数据单元格区域?
20)如何选择某列中非连续数据单元格区域?
21)如何选择一个矩形(规则的)单元格区域?
22)如何选择多个不同长度的非连续列?
23)引用工作表上的所有单元格
24)使用 A1 表示法引用单元格和区域
25)引用行和列
26)使用索引号引用单元格
27)使用快捷表示法引用单元格
28)使用 Range 对象引用单元格
29)引用命名区域
30)引用多个区域
31)处理三维区域
--------------------------------------------------------------------------------
1)如何选择当前工作表中的单元格?
例如,可以使用下面的代码选择当前工作表中的单元格D5:
ActiveSheet.Cells(5, 4).Select
或:ActiveSheet.Range("D5").Select
--------------------------------------------------------------------------------
2)如何选择同一工作簿中其它工作表上的单元格?
例如,要选择同一工作簿中另一工作表上的单元格E6,可以使用下面的代码:
Application.Goto ActiveWorkbook.Sheets("Sheet2").Cells(6, 5)
或:Application.Goto (ActiveWorkbook.Sheets("Sheet2").Range("E6"))
也可以先激活该工作表,然后再选择:
Sheets("Sheet2").Activate
ActiveSheet.Cells(6, 5).Select
--------------------------------------------------------------------------------
3)如何选择不同工作簿中的单元格?
例如,要选择另一工作簿中的一个工作表上的单元格F7,可以使用下面的代码:
Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Cells(7, 6)
或:Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("F7")
也可以先激活该工作簿中的工作表,然后再选择:
Workbook
s("BOOK2.XLS").Sheets("Sheet1").Activate
ActiveSheet.Cells(7, 6).Select
--------------------------------------------------------------------------------
4)如何选择当前工作表中的单元格区域?
例如,要选择当前工作表中的单元格区域C2:D10,可以使用下面的代码:
ActiveSheet.Range(Cells(2, 3), Cells(10, 4)).Select
或:ActiveSheet.Range("C2:D10").Select
或:ActiveSheet.Range("C2", "D10").Select
--------------------------------------------------------------------------------
5)如何选择同一工作簿中另一工作表上的单元格区域?
例如,要选择同一工作簿中另一工作表上的单元格区域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
--------------------------------------------------------------------------------
6)如何选择不同工作簿中工作表上的单元格区域?
例如,要选择另一工作簿中某工作表上的单元格区域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
--------------------------------------------------------------------------------
7)如何在当前工作表中选择命名区域?
例如,要选择当前工作表中名为“Test”的区域,可以使用下面的代码:
Range("Test").Select
或:Application.Goto "Test"
--------------------------------------------------------------------------------
8)如何选择同一工作簿中另一工作表上的命名区域?
例如,选择同一工作簿中另一工作表上名为“Test”的区域,可使用下面的代码:
Application.Goto Sheets("Sheet1").Range("Test")
也可以先激活工作表,再选择:
Sheets("Sheet1").Activate
Range("Test").Select
-
-------------------------------------------------------------------------------
9)如何选择不同工作簿中工作表上的命名区域?
例如,要选择不同工作簿中工作表上名为“Test”的区域,可使用下面的代码:
Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet2").Range("Test")
也可以先激活工作表,再选择:
Workbooks("BOOK2.XLS").Sheets("Sheet2").Activate
Range("Test").Select
--------------------------------------------------------------------------------
10)如何选择与当前单元格相关的单元格?
例如,要选择距当前单元格下面5
行左侧4列的单元格,可以使用下面的代码:
ActiveCell.Offset(5, -4).Select
要选择距当前单元格上方2行右侧3列的单元格,可以使用下面的代码:
ActiveCell.Offset(-2, 3).Select
注意:一定要保证当前单元格与所选单元格之间的距离在工作表范围内,否则会出错。
--------------------------------------------------------------------------------
11)如何选择与另一单元格(不是当前单元格)相关的单元格?
例如,要选择距单元格C7下方5行右侧4列的单元格,可以使用下面的代码:
ActiveSheet.Cells(7, 3).Offset(5, 4).Select
或:ActiveSheet.Range("C7").Offset(5, 4).Select
--------------------------------------------------------------------------------
12)如何选择偏离指定区域的一个单元格区域?
例如,要选择与名为“Test”的区域大小相同但在该区域下方4行右侧3列的一个区域,可以使用下面的代码:
ActiveSheet.Range("Test").Offset(4, 3).Select
如果该命名区域不在当前工作表中,可以先激活该工作表,然后再选择,如下面的代码:
Sheets("Sheet3").Activate
ActiveSheet.Range("Test").Offset(4, 3).Select
--------------------------------------------------------------------------------
13)如何选择一个指定的区域并扩展区域的大小?
例如,要选择当前工作表中名为“Database”区域,然后将该区域向下扩展5行,可以使用下面的代码:
Range("Database").Select
Selection.Resize(Selection.Rows.Count + 5, Selection.Columns.Count).Select
--------------------------------------------------------------------------------
14)如何选择一个指定的区域,再偏离,然后扩展区域的大小?
例如,选择名为“Database”区域下方4行右侧3列的一个区域,然后扩展2行和1列,可以使用下面的代码:
Range("Database").Select
Selection.Offset(4, 3).Resize(Selection.Rows.Count + 2, Selection.Columns.Count + 1).Select
--------------------------------------------------------------------------------
15)如何选择两个或多个指定区域?
例如,为了同时选择名为“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"))
将会出错。
--------------------------------------------------------------------------------
16)如何选择两个或多个指定区域的交叉区域?
例如,要选择名为“Test”和“Sample”的两个区域的交叉区域,可以使用下面的代码
Application.Intersect(Range("Test"), Range("Sample")).Select
注意,两个区域必须在同一工作表中。
--------------------------------------------------------------------------------
17)如何选择连续数据列中的最后一个单元格?
例如,要选择一个连续列中的最后一个单元格,可以使用下面的代码:
ActiveSheet.Range("a1").End(xlDown).Select
该代码使用在上面的工作表中,单元格A4被选择。
--------------------------------------------------------------------------------
18)如何选择连续数据列底部的空单元格?
例如,要选择连续单元格区域下面的单元格,可以使用下面的代码:
ActiveSheet.Range("a1").End(xlDown).Offset(1, 0).Select
该代码使用在上面的工作表中,单元格A5被选择。
--------------------------------------------------------------------------------
19)如何选择某列中连续数据单元格区域?
例如,要选择一列中的连续数据单元格区域,可以使用下面的代码:
ActiveSheet.Range("a1", ActiveSheet.Range("a1").End(xlDown)).Select
或:ActiveSheet.Range("a1:" & ActiveSheet.Range("a1").End(xlDown).Address).Select
该代码使用在上面的工作表中,单元格区域A1:A4将被选择。
--------------------------------------------------------------------------------
20)如何选择某列中非连续数据单元格区域?
例如,要选择某列中非连续数据单元格区域,可以使用下面的代码:
ActiveSheet.Range("a1", ActiveSheet.Range("a65536").End(xlUp)).Select
或:ActiveSheet.Range("a1:" & ActiveSheet.Range("a65536").End(xlUp).Address).Select
该代码使用在上面的工作表中,单元格区域A1:A6将被选择。
--------------------------------------------------------------------------------
21)如何选择一个矩形(规则的)单元格区域?
要选择围绕某单元格的一个矩形区域,可以使用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
--------
------------------------------------------------------------------------
resize函数vba22)如何选择多个不同长度的非连续列?
例如,有下图所示的工作表:
要同时选择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对象最常用的方法。
--------------------------------------------------------------------------------
23)引用工作表上的所有单元格
如果对工作表应用 Cells 属性时不指定索引号,该方法将返回代表工作表上所有单元格的 Range 对象。以下 Sub 过程清除活动工作簿中 Sheet1 上的所有单元格的内容。
Sub ClearSheet()
Worksheets("Sheet1").Cells.ClearContents
End Sub
--------------------------------------------------------------------------------
24)使用 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 列
--------------------------------------------------------------------------------
25)引用行和列
可用 Rows 属性或 Columns 属性来处理整行或整列。这两个属性返回代表单元格区域的 Range 对象。在下例中,Rows(1) 返回 Sheet1 上的第一行,然后将区域字体加粗。
Sub RowBold()
Worksheets("Sheet1").Rows(1).Font.Bold = True
End Sub
下表举例说明了使用 Rows 和 Columns 属性的一些行和列的引用。
引用            含义
Rows(1)    第一行
Rows    工作表上所有的行
Columns(1)  第一列
Columns("A")  第一列
Columns    工作表上所有的列
若要

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。