热点资讯
关于VBA中单元格和区域的选择与定位问题
发布日期:2024-07-22 04:25 点击次数:157
关于在VBA中的选择,系统学习归纳在一起便于查找使用。
表示单元格有2种方式,第一种是A1样式如:range(”A1“),第二种是R1C1样式如:cells(1,1),动态引用就会用到,往后有数字就可以考虑使用变量。
下面的代码都是放在Sub的过程中。提示:在写Sub过程时代码不用打完,输入()后回车就可以了,电脑会自动补上End Sub
1.活动单元格
Activecell.select
2.活动区域
Selection.select
3.选定单元格并赋值
Sheets("1").range("A1").select
activecell.value=100
4.选定区域并赋值
Sheets("1").Range("A1:A50").Select
Selection.Value = 200
5.选定多个不连续的区域并赋值
Sheets("1").Range("A1:A50,b1:b20,c5").Select
Selection.Value = 200
6.以某个单元格为基点选择相连的区域,类似Ctrl+A的效果
Sheets("1").range("A1").currentRegion.select
7.选择工作表已使用区域
Worksheets("1").Activate
ActiveSheet.UsedRange.Select
8.手动指定单元格
同是选择一个单元格有两种方式,第5行第5列可以表示为 range("e5") 或且 cells(5,5)
9.动态选择A列最下面一个数据所在的单元格
第一种方法
Range("A" & Range("A" & Rows.Count).End(xlUp).Row).Select
注意:range("A"&Rows.count).end(xlup).row,这一段代码只是代表一个行号,要定位单元格还是要套进 Range("A" & 行号代码).Select 中
第二种方法
Range("A" & Cells(Rows.Count, 1).End(xlUp).Row).Select
10.动态选择单元格后利用Offset函数进行移位,先行后列,向下向右为正,反之为负,注意起点不在原单元格。
Range("A" & Range("A" & Rows.Count).End(xlUp).Row).Offset(1, 1).Select
11.动态选择单元格后利用Resize函数可扩展新的区域,先行后列,向下向右为正,反之为负,注意起点在原单元格进行行列扩展。
Range("A" & Range("A" & Rows.Count).End(xlUp).Row).Resize(2, 3).Value = "OK"
12.动态选择区域(不知道最后一行数据在哪或最后一列数据在哪的情况下如何选择,用得是最多的,先定头,尾是从表格最后一行1048576往上定位)
打比方,我们要选择A2到A100这个区域的数据,手动写代码:Sheets("1").range("A2:A100").Select,这里的100是个动态的行号,要用另一种写法,之后代码可以重复套用。
A100可以拆分为”A“&100,那么用代码可表示为:"A“&Cells(Rows.Count, 1).End(xlUp).Row 或且 "A“&Cells(Rows.Count, ”A“).End(xlUp).Row
套到上面的代码并赋值后代码如下:
第一种写法:
Sheets("1").Range("A2:A" & Cells(Rows.Count, 1).End(xlUp).Row).Select
Selection.Value = 30
第二种写法:
Sheets("1").Range("A2:A" & Range("A"& Rows.Count).End(xlUp).Row).Select
Selection.Value = 500
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报。