ExcelVBA代码选择单元格和区域示例.docx
- 文档编号:8385507
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:10
- 大小:26.67KB
ExcelVBA代码选择单元格和区域示例.docx
《ExcelVBA代码选择单元格和区域示例.docx》由会员分享,可在线阅读,更多相关《ExcelVBA代码选择单元格和区域示例.docx(10页珍藏版)》请在冰豆网上搜索。
ExcelVBA代码选择单元格和区域示例
目录
如何选择当前工作表中的单元格?
如何选择同一工作簿中其它工作表上的单元格?
如何选择不同工作簿中的单元格?
如何选择当前工作表中的单元格区域?
如何选择同一工作簿中另一工作表上的单元格区域?
如何选择不同工作簿中工作表上的单元格区域?
如何在当前工作表中选择命名区域?
如何选择同一工作簿中另一工作表上的命名区域?
如何选择不同工作簿中工作表上的命名区域?
如何选择与当前单元格相关的单元格?
如何选择与另一单元格(不是当前单元格)相关的单元格?
如何选择偏离指定区域的一个单元格区域?
如何选择一个指定的区域并扩展区域的大小?
如何选择一个指定的区域,再偏离,然后扩展区域的大小?
如何选择两个或多个指定区域?
如何选择两个或多个指定区域的交叉区域?
如何选择连续数据列中的最后一个单元格?
如何选择连续数据列底部的空单元格?
如何选择某列中连续数据单元格区域?
如何选择某列中非连续数据单元格区域?
如何选择一个矩形(规则的)单元格区域?
如何选择多个不同长度的非连续列?
引用工作表上的所有单元格
使用A1表示法引用单元格和区域
引用行和列
使用索引号引用单元格
使用快捷表示法引用单元格
使用Range对象引用单元格
引用命名区域
引用多个区域
处理三维区域
如何选择当前工作表中的单元格?
例如,可以使用下面的代码选择当前工作表中的单元格D5:
ActiveSheet.Cells(5,4).Select
或:
ActiveSheet.Range("D5").Select
如何选择同一工作簿中其它工作表上的单元格?
例如,要选择同一工作簿中另一工作表上的单元格E6,可以使用下面的代码:
Application.GotoActiveWorkbook.Sheets("Sheet2").Cells(6,5)
或:
Application.Goto(ActiveWorkbook.Sheets("Sheet2").Range("E6"))
也可以先激活该工作表,然后再选择:
Sheets("Sheet2").Activate
ActiveSheet.Cells(6,5).Select
如何选择不同工作簿中的单元格?
例如,要选择另一工作簿中的一个工作表上的单元格F7,可以使用下面的代码:
Application.GotoWorkbooks("BOOK2.XLS").Sheets("Sheet1").Cells(7,6)
或:
Application.GotoWorkbooks("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.GotoActiveWorkbook.Sheets("Sheet3").Range("D3:
E11")
或:
Application.GotoActiveWorkbook.Sheets("Sheet3").Range("D3","E11")
也可以先激活该工作表,然后再选择:
Sheets("Sheet3").Activate
ActiveSheet.Range(Cells(3,4),Cells(11,5)).Select
如何选择不同工作簿中工作表上的单元格区域?
例如,要选择另一工作簿中某工作表上的单元格区域E4:
F12,可以使用下面的代码:
Application.GotoWorkbooks("BOOK2.XLS").Sheets("Sheet1").Range("E4:
F12")
或:
Application.GotoWorkbooks("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.GotoSheets("Sheet1").Range("Test")
也可以先激活工作表,再选择:
Sheets("Sheet1").Activate
Range("Test").Select
如何选择不同工作簿中工作表上的命名区域?
例如,要选择不同工作簿中工作表上名为“Test”的区域,可使用下面的代码:
Application.GotoWorkbooks("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").Offset(4,3).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
下面的示例使用了如下图所示的工作表。
如何选择连续数据列中的最后一个单元格?
例如,要选择一个连续列中的最后一个单元格,可以使用下面的代码:
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
下面的示例使用了如下图所示的工作表。
如何选择连续数据列中的最后一个单元格?
例如,要选择一个连续列中的最后一个单元格,可以使用下面的代码:
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
注:
使用Application.Goto方法,如果指定另一工作表(不是当前工作表)中的指定区域,在Range属性中使用两个Cells属性时,则必须包括Sheets对象,如:
Application.GotoSheets("Sheet1").Range(Sheets("Sheet1").Range(Sheets("Sheet1").Cells(2,3),Sheets("Sheet1").Cells(4,5)))
在VBA中,Range对象既可表示单个单元格,也可表示单元格区域。
下面的内容说明了标识和处理Range对象最常用的方法。
引用工作表上的所有单元格
如果对工作表应用Cells属性时不指定索引号,该方法将返回代表工作表上所有单元格的Range对象。
以下Sub过程清除活动工作簿中Sheet1上的所有单元格的内容。
SubClearSheet()
Worksheets("Sheet1").Cells.ClearContents
EndSub
使用A1表示法引用单元格和区域
可使用Range属性引用A1引用样式中的单元格或单元格区域。
下述子例程将单元格区域A1:
D5的字体设置为加粗。
SubFormatRange()
Workbooks("Book1").Sheets("Sheet1").Range("A1:
D5")_
.Font.Bold=True
EndSub
下表演示了使用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列
在VBA中,Range对象既可表示单个单元格,也可表示单元格区域。
下面的内容说明了标识和处理Range对象最常用的方法。
引用工作表上的所有单元格
如果对工作表应用Cells属性时不指定索引号,该方法将返回代表工作表上所有单元格的Range对象。
以下Sub过程清除活动工作簿中Sheet1上的所有单元格的内容。
SubClearSheet()
Worksheets("Sheet1").Cells.ClearContents
EndSub
使用索引号引用单元格
通过使用行列索引号,可用Cells属性引用单个单元格。
该属性返回代表单个单元格的Range对象。
在下例中,Cells(6,1)返回Sheet1上的单元格A6,然后将Value属性设置为10。
SubEnterValue()
Worksheets("Sheet1").Cells(6,1).Value=10
EndSub
因为可用变量替代编号,所以Cells属性非常适合于在单元格区域中循环,如下例中所示。
SubCycleThrough()
DimCounterAsInteger
ForCounter=1To20
Worksheets("Sheet1").Cells(Counter,3).Value=Counter
NextCounter
EndSub
如果要同时更改某个区域中所有单元格的属性(或将方法应用于该区域中的所有单元格),建议使用Range属性。
使用快捷表示法引用单元格
可用方括号将A1引用样式或命名区域括起来,作为Range属性的快捷方式。
这样就不必键入单词“Range”或使用引号了,如下例中所示。
SubClearRange()
Worksheets("Sheet1").[A1:
B5].ClearContents
EndSub
SubSetValue()
[MyRange].Value=30
EndSub
使用Range对象引用单元格
如果将对象变量设置为Range对象,即可用变量名轻松地操作单元格区域。
以下过程将创建对象变量myRange,然后将活动工作簿中Sheet1上的区域A1:
D5赋予该变量。
随后的语句用该变量名称代替Range对象,以修改该区域的属性。
SubRandom()
DimmyRangeAsRange
SetmyRange=Worksheets("Sheet1").Range("A1:
D5")
myRange.Formula="=RAND()"
myRange.Font.Bold=True
EndSub
引用命名区域
用名称比用A1样式记号更容易标识单元格区域。
若要命名选定的单元格区域,请单击编辑栏左端的名称框,键入名称,再按Enter。
引用命名区域
以下示例引用名为“MyBook.xls”的工作簿中名为“MyRange”的区域。
SubFormatRange()
Range("MyBook.xls!
MyRange").Font.Italic=True
EndSub
以下示例引用名为“Report.xls”的工作簿中特定于工作表的区域“Sheet1!
Sales”。
SubFormatSales()
Range("[Report.xls]Sheet1!
Sales").BorderAroundWeight:
=xlthin
EndSub
要选定命名区域,可使用GoTo方法,该方法将激活工作簿和工作表,然后选定该区域。
SubClearRange()
Application.GotoReference:
="MyBook.xls!
MyRange"
Selection.ClearContents
EndSub
以下示例显示对于活动工作簿将如何编写与上例相同的过程。
SubClearRange()
Application.GotoReference:
="MyRange"
Selection.ClearContents
EndSub
在命名区域中的单元格上循环
下例用ForEach...Next循环语句在命名区域中的每一个单元格上循环。
如果该区域中的任一单元格的值超过limit的值,就将该单元格的颜色更改为黄色。
SubApplyColor()
ConstLimitAsInteger=25
ForEachcInRange("MyRange")
Ifc.Value>LimitThen
c.Interior.ColorIndex=27
EndIf
Nextc
EndSub
引用多个区域
使用适当的方法可以很容易地同时引用多个单元格区域。
可用Range和Union方法引用任意组合的单元格区域;用Areas属性可引用工作表上选定的一组单元格区域。
使用Range属性
通过在两个或多个引用之间插入逗号,可使用Range属性引用多个区域。
以下示例清除了Sheet1上三个区域的内容。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ExcelVBA 代码 选择 单元格 区域 示例
![提示](https://static.bdocx.com/images/bang_tan.gif)