VBA 指定几个单元格求和

此表为一简化后报表,由不同填报人各填写一行或多行,由我汇总成总的报表。要求:“损失原因1-4”的和应等于“损失时间合计”。由于填报人不一定都懂得“损失原因1-4”的和应等... 此表为一简化后报表,由不同填报人各填写一行或多行,由我汇总成总的报表。要求:“损失原因1-4”的和应等于“损失时间合计”。由于填报人不一定都懂得“损失原因1-4”的和应等于“损失时间合计”。我的问题是:当填报人输入“损失原因”小于或大于“损失时间合计”能弹出对话框纠正。试过数据有效性,好像不行,“损失原因”有可能是单个,有可能是多个。比如能不能在填报人填写完毕保存时,自动检查“损失原因1-4”的和应等于“损失时间合计”,如果错误则不能保存。

这是文件下载地址
http://club.excelhome.net/forum.php?mod=attachment&aid=MTU1MzQwM3xlYzBhNDRlZnwxMzk0Mjg1MTY2fDE1Njg4Mjl8MTEwMTQxOQ%3D%3D
这个是网友用VBA做好的附件,就是在保存时检查,如果不对就不能保存。真的很不错的,是我要的功能。但新问题又来了,对方不启用宏错误也能保存。我晕又回到从前。
http://pan.baidu.com/s/1o6wgQJg
展开
 我来答
wtx274321
2014-03-08 · TA获得超过1.8万个赞
知道大有可为答主
回答量:2343
采纳率:57%
帮助的人:962万
展开全部

 请下载测试。有一个问题,由于4个损失原因的填写个数的不确定性,那么只要输入1个就得判断,于是第1个输入就必须符合条件。所以你必须重新改变规则,或像楼上方法一样只提示不拒绝。

追问
谢谢你的回答,你能不能做成输入时可以随便输入,保存时自动检查“损失原因1-4”的和应等于“损失时间合计”,如果错误则不能保存。
追答

请下载测试。代码在请Alt+F11然后双击对象ThisWorkbook查看。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zl998100
2014-03-09 · TA获得超过730个赞
知道小有建树答主
回答量:1067
采纳率:50%
帮助的人:1053万
展开全部
第1例 禁用宏则关闭Excel文件

一、实例说明:
当打开含有宏的文件时,如果“禁用宏”并打开文件后,所有编辑的VBA程序将失效。如何当用户打开Excel文件并禁用宏时,让文件自动关闭呢?本例即是调用Excel4.0版(Excel的一个老版本)的宏命令来解决这个问题。因为“禁用宏”功能无法禁用4.0版本的宏。
设置完成后,当用户打开文件并点击禁用宏按钮后,会弹如图1-24所示提出框,当击“确定”按钮关闭提示框后该文件就会自动关闭。
图1-1 禁用宏后的提示信息
二、设置步骤和使用方法:
1、 打开自已含有宏的文件或者新建一个Excel文件。然后在VBE编辑器中添加一个模块。并写入以下代码:
Function MY()
End Function
添加后的效果如图1-2所示
图1-2 给文件添加一个模块并写入代码
2、在任一个工作表标签上单元格右键,执行【插入】命令打开如图1-26所示【插入】对话框,在常用选项卡中选取“MS Excel4.0宏表”项,然后点击确定按钮后便会在当前工作簿中新建一个默认名Macro1的“宏表”。如图1-27所示。
图1-3 打开【插入】对话框
图1-4 插入的宏表
2、 在宏表的以下单元格中输入公式:
A2单元格: =ERROR(FALSE)
A3单元格: =RUN("MY")
A4单元格: =IF(ISERROR($A$3))
A5单元格: =GOTO($A$11)
A6单元格: =END.IF()
A7单元格: =ERROR(TRUE)
A8单元格: =RETURN()
A11单元格:=ALERT("对不起!由于禁用了宏,本文件将自动关闭!",3)
A12单元格:=FILE.CLOSE(FALSE)
A13单元格:=RETURN()
添加后的效果如图所示1-28
图1-5 在宏表中添加公式后的效果
3、 逐个选取工作簿中其他工作表,然后执行【插入】/【名称】/【定义】命令,打开【定义名称】对话框。在“在当前工作簿中的名称”框中输入:工作表名称+Auto_Activate。如图1-29所示在Sheet1工作表中打开【定义名称】对话框,定义的名称就为:Sheet1!Auto_Activate。然后在引用位置文本框中输入:=Macro1!$A$2。

图1-6 在每个工作表中都定义相对应的名称
注:当禁用宏并打开设置名称的工作表后,都会自动关闭文件。有一点值得说明一下,如果对于一个工作表数量较多的工作表逐个设置会很麻烦。所以这时可以只需为其中一个设置名称,但要保障“当打开工作簿时,必需是设置名称的工作表处于选取状态”。为了能达到这个效果,建议关闭文件前把除“定义名称工作表”之外的其他工作表都设置为隐藏。
4、 在每个工作表都定义名称后,保存并关闭文件。整个操作过程序结束。
三、代码要点分析
由于宏表函数的使用和运行比较复杂,所以这里不再详细说明。读者只需按照上述步骤实现“禁用宏则关闭Excel文件”的功能即可。读者可以在已编写宏命令的文件中进行以上操作,也可以先新建一个文件完成以上步骤后,再编写自已的程序代码和进行其他的工作表和单元格等编辑。

这个是我在网上找的你试试 2003可以 2007 不行
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式