Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 4344|回复: 10

[已解决]如何用VBA保留公式在工作表中

[复制链接]
发表于 2013-1-14 08:47 | 显示全部楼层 |阅读模式
如何用VBA保留公式在工作表中
最佳答案
2013-1-14 09:57

  1. Sub test()
  2.     Dim Rng, r, c

  3.     Range("aa4:aa" & Range("a4").End(xlDown).Row) = 1 '为使Rng.End(xlDown)起作用
  4.     [aa4].Select
  5.     Set Rng = [aa4]
  6.     Do Until Rng.Row = 1048576
  7.         r = Rng.MergeArea.Row
  8.         c = Rng.MergeArea.Count
  9.         If c = 1 Then
  10.             Range(Rng.Address) = "=sum(" & Cells(r, "z").Address(0, 0) & ")" '不是合并单元格
  11.         Else
  12.             Range(Rng.Address) = "=sum(" & Range(Cells(r, "z"), Cells(r + c - 1, "z")).Address(0, 0) & ")" '是合并单元格
  13.         End If
  14.         Set Rng = Rng.End(xlDown)
  15.     Loop
  16. End Sub
复制代码
Book3.rar (19.71 KB, 下载次数: 5)

Book3.rar

13.19 KB, 下载次数: 6

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2013-1-14 09:00 | 显示全部楼层
  1. Sub 公式保留()
  2.     Range("AA4") = "=sum(Z4:Z9)"
  3.     Range("AA10") = "=sum(Z10:Z12)"
  4.     Range("AA13") = "=Z13"
  5.     Range("AA14") = "=sum(Z14:Z18)"
  6. End Sub
复制代码
这还没有函数方便

评分

参与人数 1 +2 收起 理由
hvail + 2 下面还有N多行呀,这只一点,能用VBA做哪些.

查看全部评分

回复

使用道具 举报

发表于 2013-1-14 09:01 | 显示全部楼层
为什么不和aa14那样,手动再设3个公式呀

评分

参与人数 1 +1 收起 理由
hvail + 1 下面还有N多行呀,这只一点,能用VBA做哪些.

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2013-1-14 09:06 | 显示全部楼层
爱疯 发表于 2013-1-14 09:01
为什么不和aa14那样,手动再设3个公式呀

下面还有N多行呀,这只一点,能用VBA做哪些公式,然后保留呀
回复

使用道具 举报

发表于 2013-1-14 09:57 | 显示全部楼层    本楼为最佳答案   

  1. Sub test()
  2.     Dim Rng, r, c

  3.     Range("aa4:aa" & Range("a4").End(xlDown).Row) = 1 '为使Rng.End(xlDown)起作用
  4.     [aa4].Select
  5.     Set Rng = [aa4]
  6.     Do Until Rng.Row = 1048576
  7.         r = Rng.MergeArea.Row
  8.         c = Rng.MergeArea.Count
  9.         If c = 1 Then
  10.             Range(Rng.Address) = "=sum(" & Cells(r, "z").Address(0, 0) & ")" '不是合并单元格
  11.         Else
  12.             Range(Rng.Address) = "=sum(" & Range(Cells(r, "z"), Cells(r + c - 1, "z")).Address(0, 0) & ")" '是合并单元格
  13.         End If
  14.         Set Rng = Rng.End(xlDown)
  15.     Loop
  16. End Sub
复制代码
Book3.rar (19.71 KB, 下载次数: 5)

评分

参与人数 1 +3 收起 理由
hvail + 3

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2013-1-14 10:11 | 显示全部楼层
爱疯 发表于 2013-1-14 09:57

AI和AJ列可以做到保留格式吗?

点评

。。。。不明白这句的意思  发表于 2013-1-14 10:21
回复

使用道具 举报

 楼主| 发表于 2013-1-14 10:26 | 显示全部楼层
爱疯 发表于 2013-1-14 09:57

就是AI列和AJ列不是也有公式嘛,我也想保留下来。同AA列一样保留,但是公式不一样。
回复

使用道具 举报

 楼主| 发表于 2013-1-14 10:43 | 显示全部楼层
爱疯 发表于 2013-1-14 09:57

超级爱疯,后面的公式能保留吗?
回复

使用道具 举报

发表于 2013-1-14 13:17 | 显示全部楼层
Book5.rar (21.63 KB, 下载次数: 4)

评分

参与人数 1 +3 收起 理由
hvail + 3 http://www.excelpx.com/thread-293766-1-1

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2013-1-14 13:57 | 显示全部楼层
爱疯 发表于 2013-1-14 13:17
这样吗

就是要这样,有点慢.不过已经很好了,回复一下我的http://www.excelpx.com/thread-293766-1-1.html,再给你最佳,效果差不多.超级爱疯,超级爱,超级谢.
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 09:52 , Processed in 0.409897 second(s), 20 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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