|
wkw 发表于 2012-4-16 11:21
还有些问题想请教下:
1、 Lx = .Range("F4").End(xlToRight).Column 这条代码中,“Column ”是否可以 ...
1、 Lx = .Range("F4").End(xlToRight).Column 这条代码中,“Column ”是否可以删除呢?
意思是以F4单元格为基点,往右(xltoright)查找非空单元格,找到后返回他的列号(.column)
2、 If Application.CountA(.Range(.Cells(5, "F"), .Cells(5, Lx - 1))) <> Lx - 6 Then (为什么要减6,不是减 7,是不是因为我要增加一列,所以你也多减去了1?)
counta统计的区域是 以 F列开始到上面找到的非空单元格所在列,
找到的非空列是以A列开始计算的,比如8楼附件中的非空列是M列,他的列号是 13,
A到E 这 5 列是没有内容的,加上你的 备注 列也是可以没有内容的,一共就是 6 列没有内容的,
上面的 LX的值是 13,然后再减掉这6列,结果就是7列,在counta里来看 ,F列到L 也刚好是7列
3、Sheet2.Range("A" & Hx).Resize(, Lx - 5) = .Range("F5").Resize(, Lx - 5).Value '使用 Resize来扩展区域,使数据一次写入
这个短语看的不是很懂,能不能解释下代码的意思?谢谢~
上面的lx=13,下面的 lx-5=8
那么 Range("A" & Hx).Resize(, Lx - 5) 写入值的区域就是 A:H 列 , 因为以A列为基点,扩展8列,那么第8列就是H列
后面这句 .Range("F5").Resize(, Lx - 5).Value 就用同样的方法来理解了
以F5为基点,扩展8列,这个区域就是 F5:M5 ,后面跟.value是为了防止特殊数据不能被写入!!
|
|