ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 15208|回复: 22

[求助] [求助]如何根据条件自动执行宏?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2008-2-5 17:51 | 显示全部楼层 |阅读模式
如何使“当A1<=1时,自动执行宏1,不满足时,自动执行宏2”?能实现吗?

TA的精华主题

TA的得分主题

发表于 2008-2-5 18:56 | 显示全部楼层

 可以的!

safuumkF.rar (6.39 KB, 下载次数: 822)

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-2-7 15:38 | 显示全部楼层
哥们儿,谢谢!
    这差不多就是我要的结果,可是我不知道你是怎么做到的,能说的详细点儿吗?这方面我确实是个新手!还有,有办法取消运行宏之前的提示吗?
    切盼解答,再次感谢!

TA的精华主题

TA的得分主题

发表于 2008-2-8 13:44 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助


Private Sub Worksheet_Change(ByVal Target As Range) '"SHEET1"的Change事件,当"Sheet1"中的单元格内容改变时触发该事件
If Target.Address = "$A$1" Then '指当前单元格为A1时,满足条件,执行后续语句
    If Target <= 1 Then '如果当前单元格值小于等于"1",则调用宏"Macro1"
        Call Macro1
    Else
        Call Macro2 ' 如果当前单元格值于"1",则调用宏"Macro2"
    End If
End If

End Sub

--------------------------------

Sub Macro1()
    MsgBox "执行宏1"
End Sub

--------------------------------
Sub Macro2()
    MsgBox "执行宏2"
End Sub
--------------------------------

系统出现提示,只要运行"MsgBox"语句就可以了!

楼主可以将预计执行的代码放在"Macro1"."Macro2"中.

[此贴子已经被作者于2008-2-8 13:58:08编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-2-8 22:50 | 显示全部楼层
lht7777兄,太好了,我搞的差不多了,还有一个问题:
A1一定时“当前”单元格吗?我的程序中A1是一个中间过程的公式。现在的程序只有在我手工修改A1时起作用,如果是前面程序自动生成的结果,则此程序不起作用。如之奈何?
另外,能给我推荐一本比较通俗易懂的VBA的书吗?
[此贴子已经被作者于2008-2-8 23:03:47编辑过]

TA的精华主题

TA的得分主题

发表于 2008-2-9 00:24 | 显示全部楼层

"Worksheet_Change"事件是当前工作表中任意一个单元格的内容变更时被触发的,如果不指定单元格进行限制,则任何一个单格的内容变更都会触发该过程.

所以我以单元格"A1"为例进行了限制,如果你的需求是根据前道进行变更的,那就要根据你的指定条件进行单元格的限定.

要学习VBA,可以看看下面的链接,是论坛朋友根据"山菊花老师"的教程整理的,山菊花老师的帖子要好好看,很好的!

http://club.excelhome.net/viewthread.php?tid=294212&replyID=&skin=0

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-2-9 01:09 | 显示全部楼层
lht7777兄,可能我没说明白。
我确实将A1单元格变更为我需要的单元格E18了,但问题是只有我手工改动E18的数值时,才会自动去执行宏。如果E18的数值是由前道自动计算的,不论结果如何,都不会自动执行宏。
你推荐的帖子我准备好好学学,争取以后可以自己解决问题。再次感谢!

TA的精华主题

TA的得分主题

发表于 2008-2-9 01:30 | 显示全部楼层

哈哈,你好刻苦啊,过年了,还要为了工作做到这么晚!

如果你的"E18"单元格的内容是由其它单元格计算得来的,那我建议你将你的事件触发代码加在"E18"单元格的源数据所在单格上!

最好传实例上来看看,这样更容易解决问题!

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-2-9 01:53 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
呵呵,你也一样,不是刻苦就是发烧。:)
目的是这样的,如果E18<=1.0,则隐藏第20行,否则隐藏第19行。E27和E36类似。
[此贴子已经被作者于2008-2-9 2:03:19编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-2-9 02:07 | 显示全部楼层
呵呵,你也一样,不是刻苦就是发烧。:)
目的是这样的,如果E18<=1.0,则隐藏第20行,否则隐藏第19行。E27和E36类似。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-17 01:15 , Processed in 0.029111 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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