我在Excel中的宏阅读一段VBA程序中,碰到一些语句,有点不是很懂,求解释下,回答的详细,另外还有加分。

1 finalrow=Cells(Rows.Count,1).END(x1Up).Row
2 v1=Cells((finalrow+1),1).Offset(,2).Address
3 Set myRange=Cells(myRow,myColumn)
myRange.Value=myRange.Address
4 ActiveSheet.range(A2).CurrentRegion.Interior.ColorIndex=4
5 f1=range(lastcell).Offset(,3).Column
6 Range(A2).Offset(d,1).Value=ac
以上语句的变量都是已经定义的了

第一句本意是获得最后记录行号,但语句中有错误,1 改为 l ,xlup 。
finalrow = [a1].CurrentRegion.Rows.Count 或 = [A65536].End(xlUp).Row 更简洁。

第二句获得一个地址,假设 finalrow 等于5,则 v1 等于 $C$6,即 a5 偏移 (1,2)位置,改用=cells(finalrow,1).offset(1,2)更易阅读。另外v1应是变量,若是单元格,该用 [v1]

第三句,先假设 myrow 为1,mycolumn 为 1 ,则 set 一句定义变量 myrange 为 range("a1"),也可表示为[a1],下一句则为[a1]赋值为 $A$1,单元格a1显示 $A$1

第四句本意似乎将a2及其周围有数据区域设置绿色底色,但少了俩引号:
ActiveSheet.range("A2").CurrentRegion.Interior.ColorIndex=4
若a2是range变量则无错。

第五句,变量f1赋值为lastcell的行号加3。同上若本意是为单元格 F1 赋值,应 [f1],或range("f1") ,另外建议程序中不要用类似单元格名称的变量名。

最后一句,range变量a2向下偏移d行向右偏移1列的单元格赋值为变量 ac 的值 。若改为
range("a2").offset(d,1).value ,设 d = 3 ,则为单元格 b5 赋值。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-04-26
1 finalrow=Cells(Rows.Count,1).END(x1Up).Row
定义FINALROW等于Cells(Rows.Count,1).END(x1Up).Row
rows.count 是工作表里面行的数量 CELLS应该知道的吧 END(x1Up).Row是最后记录行

2 v1=Cells((finalrow+1),1).Offset(,2).Address
V1等于CELLS刚才的FINALROW +1,1 然后 OFFSET(0,2) 就是行部变 列 偏移2列的地址
3 Set myRange=Cells(myRow,myColumn)
myRange.Value=myRange.Address
myrange 等于 这个区域Cells(myRow,myColumn) myrow mycoulum你找找代码里面对应的数据就好了

4 ActiveSheet.range(A2).CurrentRegion.Interior.ColorIndex=4
当前活动表的A2的单元格颜色设置
5 f1=range(lastcell).Offset(,3).Column
F1等于 lastcell的列数再+3 OFFSET(0,3).column是偏移3列 就是列数+3 咯
6 Range(A2).Offset(d,1).Value=ac
A2向下偏移D行 1列的值等译AC
第2个回答  2011-04-25
mjko
相似回答