热点资讯

你的位置:杏彩体育注册 > 业务范围 > 关于VBA中单元格和区域的选择与定位问题

关于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

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报。