EXCEL VBA中如何获取指定区域的单元格位置

在VBA中可以用这些方式表示单元格1、RANGE("B3:F10")(i) ;2、RANGE("B3:F10")(a,b)请问如果活动单元格ACTIVECELL在RANGE("B3:F10")中的某个位置,那怎么获取上述两种单元格表示法的i,a,b三个数值?

RANGE("B3:F10")(i) 是以选择范围左上角第一个单元格为1,然后在范围里面从左到右,排序,本例对应i=1到10就应该是B3,C3,D3,E3,F3,B4,C4,D4,E4,F4
RANGE("B3:F10")(a,b)有点类似offset函数,B3坐标为1,1追问

单元格表示方法的含义我知道,我想问的是如何获得活动单元格在这个区域的位置,即i=多少,a=多少,b=多少。例如:活动单元格在C4的位置,那么i=12,a=2,b=2,那么如何取得这三个数值呢,如果我的语句是Msgbox i & a & b,那么前面的代码要怎么写才能得到“10 2 2”这个结果出来啊,如何做到这个效果?

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-26
a = activecell.Row - 3
b = activecell.Column - 2
i=activecell.Row - 3
里面的数值2、3 是根据B3指定的
i 跟a的含义应该是一样的吧追问

i在表格第一行可以这样,如果在第二行呢?

追答

i=activecell.row-4*10+activecell.column-2 其中10是b列到F列的列数,4是根据B3指定的行数+1

本回答被提问者采纳
相似回答