EXCEL vba 如何获取某列中等于固定值的连续单元格区域

例如:
A列
1行 1
2行 1
3行 2
4行 2
5行 3
6行 3

首先A列是经过排序的,所以数值一样的单元格都是连续的,现在要分别获取A列中等于1、2、3的连续单元格区域,然后在进行其他操作(如复制、粘贴什么的),那获取单元格区域的这段代码该怎样编写,请高手们指点。
Range("A1:A2")这样的引用是不行的,因为不同工作表中连续等于1、2、3的单元格行数与行号都是不一样的。

EXCEL vba 获取某列中等于固定值的连续单元格区域的写法如下

dim n&,j&,rng as range
n=[a65536].end(xlup).row
j=1
for i=2 to n
if cells(i,1)<>cells(j,1) then
rng=range(cells(j,1),cells(i-1,1))
'这里进行其他操作(如复制、粘贴什么的)
j=i
end if
next
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-06-07
例如:
A列
1行 1
2行 1
3行 2
4行 2
5行 3
6行 3

首先A列是经过排序的,所以数值一样的单元格都是连续的,现在要分别获取A列中等于1、2、3的连续单元格区域,然后在进行其他操作(如复制、粘贴什么的),那获取单元格区域的这段代码该怎样编写,请高手们指点。
Range("A1:A2")这样的引用是不行的,因为不同工作表中连续等于1、2、3的单元格行数与行号都是不一样的。

dim n&,j&,rng as range
n=[a65536].end(xlup).row
j=1
for i=2 to n
if cells(i,1)<>cells(j,1) then
rng=range(cells(j,1),cells(i-1,1))
'这里进行其他操作(如复制、粘贴什么的)
j=i
end if
next
第2个回答  2012-10-08
dim n&,j&,rng as range
n=[a65536].end(xlup).row
j=1
for i=2 to n
if cells(i,1)<>cells(j,1) then
rng=range(cells(j,1),cells(i-1,1))
'这里进行其他操作(如复制、粘贴什么的)
j=i
end if
next本回答被提问者和网友采纳
第3个回答  2012-10-08
参考一下我回答的一个类似的问题.
http://zhidao.baidu.com/question/437543629.html?oldq=1
相似回答