ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

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

  [复制链接]

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 | 显示全部楼层
本帖最后由 wb_1027 于 2022-9-9 22:35 编辑


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

TA的精华主题

TA的得分主题

发表于 2022-9-9 21:31 | 显示全部楼层

出现对话框时,点击取消按钮或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 | 显示全部楼层
本帖最后由 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 ...

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

祝大侠中秋快乐!

TA的精华主题

TA的得分主题

发表于 2022-9-10 20:20 | 显示全部楼层
Sub test4()
On Error Resume Next
    Dim rng As Range
    Dim AddR As String
    If TypeName(Selection) = "Range" Then AddR = Selection.Address Else: AddR = ""
Rem ---- 声明一个对象变量;
Rem ---- 假设当前选择的对象是单元格,则将单元格地址赋予变量,否则将空文本赋予变量;
Rem ---- 弹出对话框,自由选择区域,对话框中默认显示变量 AddR 的值;若重新选择单元格区域,则该区域地址赋予 rng;
    Set rng = Application.InputBox("请选择区域进行格式设置!", "Love", AddR, , , , , 8)
    rng.NumberFormat = "0.00"
    MsgBox "您已为所选的" & rng.Cells.Count & "个单元格区域进行了格式设置。"
    rng.Select
End Sub

建立在已选择了工作表中任意单元区域,一或多个,
绕过出现对话框直接点击确定键。
偷懒啊!

TA的精华主题

TA的得分主题

发表于 2022-9-11 10:27 | 显示全部楼层
wb_1027 发表于 2022-9-10 20:20
Sub test4()
On Error Resume Next
    Dim rng As Range

哈哈,费心了,谢谢老师,挺好玩儿的

TA的精华主题

TA的得分主题

发表于 2022-9-12 16:03 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
继续练习图表
屏幕截图 2022-09-12 160224.jpg

三维堆积柱形图.rar

13.8 KB, 下载次数: 23

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-9-12 17:21 | 显示全部楼层
这个图做好了,效果很不错,主要是比例和角度需要调整舒服了
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-5 23:19 , Processed in 0.040946 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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