设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 5899|回复: 3
打印 上一主题 下一主题

怎样用VBA实现公式自动更新?

[复制链接]
跳转到指定楼层
1#
发表于 2005-5-11 01:22:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2005-5-11 16:33:00 | 只看该作者
你1月份的数据和2月份的数据都放在什么地方?是1 个工作表中吗?还是两个工作表?
3#
 楼主| 发表于 2005-5-11 16:58:00 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
4#
发表于 2005-5-11 18:58:00 | 只看该作者
用VBA做一个宏,然后为这个宏放指定一个按钮或者快捷键:

我说一下思路,具体代码就不写了:

首先,如果你的表的行数是不确定的,请确定行数,我们架设是n(当然如果你的行数是固定的,则n就是一个常数了)

    最简单的一个方法是用do……loop循环,直到一个空行为止,那么此时的数据清单中的最后一行就是n-1

然后,确定最后一列,这有两个方法,一个方法就用上面确定行的办法一样,第二个办法是如果你能确保最后一列的标题就是“汇总”的话,直接在标题行中查找“汇总”,然后取得列的数值,赋予变量m

最后,用两个嵌套For……next循环来完成汇总计算:

    for i=2 to n-1      =======从第2行开始到最后一行

      s=0               ========初始化每一行的汇总数据

       for j=2 to m-1     ========从第2列开始到有数据的最后一列(m是需要汇总的列)

            s=s+cells(i,j)  ======数据累加汇总

        next j

            cell(i,m)=s    ========把汇总数据写入该行的汇总单元格

      next i

其实,如果把最后一列求出来之后,汇总也可以不用for循环来累加的,应该可以用sum函数直接求和,这样就可以去掉第二个for循环,效率会大大提高
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-5 18:50 , Processed in 0.097596 second(s), 27 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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