Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
123
返回列表 发新帖
楼主: wangkaiwei

[已解决]如何在excle单元格中编写的vba语言当插入一列的时候公式也自动改变?

  [复制链接]
发表于 2012-4-16 17:44 | 显示全部楼层
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是为了防止特殊数据不能被写入!!


excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-1 12:40 , Processed in 0.219430 second(s), 7 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表