ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: micch

[分享] 偶尔兴致来了,练习一些图表,记录一下

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2022-9-9 19:32 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
wb_1027 发表于 2022-9-9 13:26
假设数据如上图,整理完毕
点击运行代码

请教个问题,我之前用inputbox,类型8,选择输入单元格地址的时候,与老师在楼上的附件中的inputbox用法一样
问题是:对话框为空,直接点确定,会报错,如图所示。
百度了很久也没有解决,每次用到这个代码都觉得不舒服,有啥处理的好办法没?求教了!


屏幕截图 2022-09-09 192131.jpg

TA的精华主题

TA的得分主题

发表于 2022-9-9 20:10 | 显示全部楼层
493861364 发表于 2022-9-9 19:32
请教个问题,我之前用inputbox,类型8,选择输入单元格地址的时候,与老师在楼上的附件中的inputbox用法 ...
  1. On Error Resume Next
复制代码


是这个意思吗?

TA的精华主题

TA的得分主题

发表于 2022-9-9 20:24 | 显示全部楼层
wangg913 发表于 2022-9-9 20:10
是这个意思吗?

感谢版主回复,对话框空着,点取消,这句代码管用

对话框空着,点确定,还是报错
屏幕截图 2022-09-09 202116.jpg

TA的精华主题

TA的得分主题

发表于 2022-9-9 20:33 | 显示全部楼层
493861364 发表于 2022-9-9 20:24
感谢版主回复,对话框空着,点取消,这句代码管用

对话框空着,点确定,还是报错

IF RNG IS NOTHING THEN EXIT SUB

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-9-9 20:37 | 显示全部楼层
set rng  需要返回一个range对象给 rng 赋值。取消返回的是false,不对。没选择就点确定,也是没返回range对象,所以也不对。

TA的精华主题

TA的得分主题

发表于 2022-9-9 20:48 | 显示全部楼层
wangg913 发表于 2022-9-9 20:33
IF RNG IS NOTHING THEN EXIT SUB

试过了,=empty,=“”,都试过了,好像根本运行不到这行代码就报错了
还试过直接判断inputbox与空字符是否相等,然后退出,都是报错,
感觉空值根本不会返回,直接就报错了


屏幕截图 2022-09-09 204043.jpg

TA的精华主题

TA的得分主题

发表于 2022-9-9 21:10 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 wb_1027 于 2022-9-9 22:35 编辑


要求选择单元格区域,而不选择,
为什么错误,不知道。
利用语句可以绕过错误或忽略错误。

TA的精华主题

TA的得分主题

发表于 2022-9-9 21:31 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

出现对话框时,点击取消按钮或Esc按钮,VB将显示一个错误信息——“要求对象”。为什么错误,我不知道。
如果试着去调试,VB就会加亮显示错误的代码行。
若不希望在取消对话框时选择任何单元格,并且也不希望出现其他对话框,
On Error GoTo 标志 这个语句就可以忽略VB显示的这个错误。
自语句 On Error GoTo 标志,绕过错误的发生,
直接转到 标志 处,他是绕过了 标志起始到结束之间的所有语句,


Sub test1()
    Dim Rng As Range
    Dim TellMe As String
    Dim MeR As String
    On Error GoTo ForcedEnd
    TellMe = "请使用鼠标选择一个范围:"
    MeR = "格式化单元格"
        Set Rng = Application.InputBox(prompt:=TellMe, Title:=MeR, Type:=8)
        Rng.NumberFormat = "0.00"
        MsgBox "您已为所选单元格区域进行了格式设置。"
    Rng.Select
ForcedEnd:

End Sub

On Error Resume Next 是忽略错误语句继续执行下一句,


Sub test2()
    Dim Rng As Range
    Dim TellMe As String
    Dim MeR As String
    On Error Resume Next
    TellMe = "请使用鼠标选择一个范围:"
    MeR = "格式化单元格"
        Set Rng = Application.InputBox(prompt:=TellMe, Title:=MeR, Type:=8)
        Rng.NumberFormat = "0.00"
        MsgBox "您已为所选单元格区域进行了格式设置。"
    Rng.Select

End Sub


运行test2 ,点击取消,MsgBox对话依然会出现,
而test1就不会。



TA的精华主题

TA的得分主题

发表于 2022-9-9 22:14 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 493861364 于 2022-9-9 22:24 编辑
wb_1027 发表于 2022-9-9 21:31
出现对话框时,点击取消按钮或Esc按钮,VB将显示一个错误信息——“要求对象”。为什么错误,我不知道。
...

感谢老师指点,学习了,试了下2段代码,对话框空着,点取消确实能跳过去
我那个困惑是,空着对话框,啥也不选,直接点击确认按钮会报错
是我以前误操作发现的
再次感谢热心指点帮助,祝您中秋愉快!

TA的精华主题

TA的得分主题

发表于 2022-9-9 22:26 | 显示全部楼层
micch 发表于 2022-9-9 20:37
set rng  需要返回一个range对象给 rng 赋值。取消返回的是false,不对。没选择就点确定,也是没返回range ...

是的,比较麻烦的就是,错误处理的语句,无法绕开空着对话框单击确认按钮的操作,空着对话框按取消按钮的操作可以绕过去

祝大侠中秋快乐!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-7-1 16:06 , Processed in 0.038351 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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