ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

如果单元为空,做出提示,并停止运行宏怎么写代码?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2014-2-3 10:59 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
先给各位版主及会员拜个年,新年快乐。
问题如标题,我在vba其实很简单的第84页,学到  If Range("c3").Value = "" Then MsgBox "请输入供货单位" 这一句,但只能做出提示,提示关闭后宏还继续运行。怎样停止宏,待修改后单元格后,再重新启动宏。
头像被屏蔽

TA的精华主题

TA的得分主题

发表于 2014-2-3 13:31 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
提示: 作者被禁止或删除 内容自动屏蔽

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-2-3 15:13 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
感谢楼上的回复,
你可能理解错了我的意思,我是想在C3单元格为空时,弹出提示并停止宏运行。
如果C3单元格已填写内容,则不会出现提示,宏还继续向下运行,我下面还有40多句呢。
头像被屏蔽

TA的精华主题

TA的得分主题

发表于 2014-2-3 21:07 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
提示: 作者被禁止或删除 内容自动屏蔽

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-2-4 09:21 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
朱荣兴 发表于 2014-2-3 21:07
那你这样不就行了
sub tishi()
If Range("c3").Value = "" Then MsgBox "请输入供货单位"

感谢你在假日中两次给我的帮助,但你的语句显示“else没有if”
我昨晚自己突然想到,既然没有找到“如果..........那么......并且”那我就用重复两次“如果.......那么”来编写不就行了。我使用了下面的语句,居然成功了。感觉能够优化为一句吧。
If Range("c3").Value = "" Then MsgBox "请输入供货单位", , "提示"
If Range("c3").Value = "" Then End
头像被屏蔽

TA的精华主题

TA的得分主题

发表于 2014-2-4 12:34 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
提示: 作者被禁止或删除 内容自动屏蔽

TA的精华主题

TA的得分主题

发表于 2014-2-5 10:44 | 显示全部楼层
Private Sub 单元格_输入对话器()
        Dim 供货单位
            供货单位 = InputBox("请输入供货单位:", "供货单位录入器", Range("c3").Value)
            Range("c3").Value = 供货单位
            If 供货单位 = "" Then
                Exit Sub
            Else
                MsgBox Range("c3").Value, 0, "供货单位:"
            End If
End Sub

TA的精华主题

TA的得分主题

发表于 2014-2-5 11:27 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 锋速668 于 2014-2-5 11:33 编辑

Private Sub 单元格_输入对话器()
        Dim 选择, 供货单位, 提示
            If Range("c3").Value = "" Then
                选择 = MsgBox("当前的供货单位为:“”" & vbCrLf & "是否需要输入供货单位?", 36, "提示")
            Else
                选择 = MsgBox("当前的供货单位为:" & Range("c3").Value & vbCrLf & "是否需要修改供货单位?", 36, "提示")
            End If

            If 选择 = 6 Then
                供货单位 = InputBox("请输入供货单位:", "供货单位录入器", Range("c3").Value)
                Range("c3").Value = 供货单位
                If 供货单位 = "" Then
                    Exit Sub
                Else
                    MsgBox Range("c3").Value, 0, "供货单位:"
                End If
            End If
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-2-12 18:57 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
太感谢了!
抱歉这些天拜年,出门,没有时间研究你的代码。
比我下面这两句虽然多了好多,但如没有输入内容,可以提示,并显示输入框,在填写后可以继续执行宏。
If Range("c3").Value = "" Then MsgBox "请输入供货单位", , "提示"
If Range("c3").Value = "" Then End
但我在使用中,因为下面的代码有清除C3内容的代码,所以我不需要,当C3已输入内容时做出更改提示。所以我不需要下面这句。
选择 = MsgBox("当前的供货单位为:" & Range("c3").Value & vbCrLf & "是否需要修改供货单位?", 36, "提示")
我在前面加了单引号后,运行正常,
再次感谢,我又学到了一些知识。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-23 10:08 , Processed in 0.042621 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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