VB定位到A列最后一个不等于空的单元格上?

如题所述

dim irow&
irow = range("A" & rows.count).end(3).row
这里的rows.count是指excel的总行数的数字,
这里的range("A" & rows.count)是指的A列最后一个单元格,
.end(3)是“的上界”的意思,3是xlup的常数值。
.row是“的行号”的意思。
上面那一整句,可以获取到A列最后一个非空单元格的行号。
如果A列只有A1是非空,会获取到1,
如果A列全部是都空的,会获取到1,不可能出现获取到0行号的情况。
有了行号,就可以给最后一个非空单元格赋值了:
irow = irow + 1
if irow=1 and range("A1")="" then irow=1 '修正
range("a" & irow)=888 '写入数据
===========================

其实,如果是想定位到最后一个非空单元格,求行号有点多余了。
可以直接这么这写:
range("A" & rows.count).end(3).offset(1,0)=888
这句意思是:A列最后一个单元格的上界单元格再偏移1行0列后的单元格。
注意这句没修正,如果A列全是空的,会直接写到A2去,因为offset(1,0)会直接进行偏移了。A1就跳过去了。
也可以先写个标题,再写入值:
if range("A1") = "" Then range("A1") = "计算结果"
range("A" & rows.count).end(3).offset(1,0)=888
温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-12-12
Cells(Rows.Count, "A").End(xlUp).Select
相似回答