【VBA研究】cells(row,col)引用中的列号也可以直接用字母表示

iamlaosong文

1、对单元格进行处理的时候往往会用cells(row,col)进行引用,如cells(1,3)表示C1单元格(1行3列),当用户用字母(列名)指定列的时候,我们首先将字母转换成数字列号,如C列用Asc(UCase("c")) - 64转换为3,然后再进行引用。现在又发现另一个写法,就是列可以直接用字母或者内容为字母的变量表示,这样就不需要将字母转换成数字了。如:

    MsgBox Cells(16, "b")
    MsgBox Cells(16, "ab")
    cc = "c"
    MsgBox Cells(16, cc)

Cells属性的严格用法是 Cells.Item( row, column ) ,不过由于Item 是一个默认属性,所以可以不写,因此我们平时直接简化写作 Cells ( row, column ) 的形式。其中,第一个参数 row 必须是数字,而第二个参数 column 则可以是数字,也可以直接写成列名。

Cells可以看作是Range对象的一个子集,Cells(1,1)相当于Range("A1"),同样一个Range也有很多种写法,如下面这些代码效果都是一样的:
Range(Cells(1, 1), Cells(10, 5)).Select
Range(Cells(1,"A"), Cells(10, "E")).Select
Range(Range("A1"), Range("E10")).Select
Range(Range("A1").Address, Range("E10").Address).Select
Range([A1], [E10]).Select
Range("A1", "E10").Select
Range("$A$1", "$E$10").Select
Range("A1:E10").Select

2、如果以一个单元格为起点,引用一个区域,例如引用以Cells(i,j)开始m行n列,对于数字列号很简单,只需将数字相加即可,即:

Range(Cells(i, j), Cells(i+m, j+n)).Select

如果字母为列号,就不能用上面的方法。Excel提供了一个offset属性,这个属性就是偏移量。用这个可以达到同样的目的,即:

Range(Cells(i, pmCol1), Cells(i, pmCol1).Offset(m, n)).Select

上面变量pmCol1的内容是一个数字列号或者字母列号。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值