VBA Excel 简单错误处理

2024-04-14

我尽可能多地上网查看(除了微软支持网站,该网站由于某种原因在工作中被屏蔽)。我试图简单地跳过一个错误。我在这里编写的代码经过简化,但应该以相同的方式工作。

我的代码应该做什么:我的一名潜艇在循环中创建形状并命名它们(btn_1、btn_2 等)。但在创建它们之前,它会调用一个子程序来尝试删除它们,以免创建重复项。该子循环遍历(btn_1、btn_2等)并使用以下命令删除形状:

for i = 1 to (a certain number)
    Set shp = f_overview.Shapes("btn_" & i)
    shp.delete
next

当然,有时该形状无法删除,因为它根本不存在。我发现大多数时候,建议的修复方法是在设置形状之前添加(在接下来的错误恢复中),因为我收到一条错误消息说它不存在。我已经在循环内部、循环之前等进行了尝试,如下所示:

for i = 1 to (a certain number)
    On Error Resume Next
    Set shp = f_overview.Shapes("btn_" & i)
    shp.delete
next

据我了解,如果形状不存在,它应该直接循环,但无论接下来是否添加“错误恢复”,我仍然会遇到相同的错误!我究竟做错了什么?

编辑:当形状确实存在时,不会出现错误。


我发现大多数时候,建议的修复方法是在设置形状之前添加(在接下来的错误恢复中),因为我收到一条错误消息说它不存在。

NO!

推荐的方式handle运行时错误是not把他们推到地毯下并继续执行,就像什么都没发生一样——这正是On Error Resume Next does.

最简单的方法avoid运行时错误的目的是检查错误条件,并避免执行导致 100% 失败率的代码,例如尝试在对象引用上运行方法Nothing:

For i = 1 To (a certain number)
    Set shp = f_overview.Shapes("btn_" & i)
    If Not shp Is Nothing Then shp.Delete
Next

如果您无法检查错误条件并且must处理错误,推荐的方法是handle them:

Private Sub DoSomething()
    On Error GoTo CleanFail

    '...code...

CleanExit:
    'cleanup code here
    Exit Sub

CleanFail:
    If Err.Number = 9 Then 'subscript out of range
        Err.Clear
        Resume Next
    Else
        MsgBox Err.Description
        Resume CleanExit
    End If
End Sub
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VBA Excel 简单错误处理 的相关文章

  • 将表行从 Word 文档复制到现有文档表特定单元格

    我正在寻找一个宏 它将内容从一个 Word 文档中的表格复制到另一个现有 Word 文档中的表格到特定单元格中 从第 5 行开始 复制后面的所有行并将其粘贴到现有文档中的第 5 行 这可能吗 在此输入图像描述 https i stack i
  • 如何在不滚动的情况下截取整个电子邮件正文?

    我正在使用 OL2010 想要制作整个电子邮件的屏幕截图 不仅仅是 屏幕 可以用VBA或者外部程序来完成吗 有一个类似的问题 https stackoverflow com questions 4176340关于如何使用 C 实现这一点 注
  • 如何使用Matlab将数据保存到Excel表格中?

    我想将数据以表格形式保存在 Excel 工作表中 它应该看起来像 Name Age R no Gpa Adnan 24 18 3 55 Ahmad 22 12 3 44 Usman 23 22 3 00 每次当我执行我的文件时类数据 m 下
  • 查找并替换目录中所有 Excel 文件工作簿中的字符串

    我正在编写 VBA 代码来替换位于特定目录中的多个 Excel 文件 工作簿 中的特定字符串 我尝试在 Stack Overflow 上搜索 找到答案 但这与通过 Excel 中的宏替换文本文件中的字符串有关 相同的链接是查找并替换文件中的
  • 在 VBA 中循环合并单元格

    是否可以循环遍历合并的单元格vba questions tagged vba 我的范围内有 6 个合并单元格B4 B40 我只需要这 6 个单元格中的值 6 次迭代 上面的答案看起来已经让你排序了 如果您不知道合并的单元格在哪里 那么您可以
  • 无法将 Excel 值的类型“double”转换为“string”

    我正在加载 Excel 文件 如网络上许多地方所示 OpenFileDialog chooseFile new OpenFileDialog chooseFile Filter Excel files xls xlsl xls xlsx i
  • Apache poi setformula 不适用于 SE

    我正在尝试在 XSSFCell With POI 中设置公式 Cell setFormula SE D87 0 D80 D87 错误是 名称 SE 在当前工作簿中完全未知 Why 看起来您正在尝试创建一个IF公式 我发现这一页 http w
  • 如何在 Azure 逻辑应用中解析 Excel 电子表格

    我需要使用 Azure 逻辑应用从 Excel 电子表格中解析和提取列信息 我已经为我的逻辑应用程序设置了从 Outlook 检索最新未读电子邮件的功能 此外 我的逻辑应用程序执行 FOR EACH 来读取所有附件 来自未读电子邮件 并确保
  • 我可以用文本框设置变量名称吗? excel

    我可以使用 TextBox Vba Excel 设置变量的名称吗 我必须以在文本框中写入组名称并单击命令按钮的方式输入新的产品组 代码必须从文本框中获取字符串 并将该字符串设置为新创建的数组的名称 我只想在运行时创建一个新变量 或数组 据信
  • Outlook 无法识别一个或多个姓名

    我有以下 vba 代码 它读取邮箱并向任何发送无效代码作为邮箱回复的用户发送回复 但有时会收到运行时错误 Outlook 无法识别一个或多个名称 我的问题是 创建新的 MAPI 配置文件是否可以解决该问题 或者我是否需要添加一个代码来解析地
  • 在Google电子表格中划分整列

    我是 Google 电子表格的一个相对较新的用户 我希望 B 列中的每个单元格都是 A 列 同一行 中内容除以 5 的结果 B1 B2 B3 等 商 应为 A1 A2 A3 等 被除数 除以 5 除数 在示例中 B1 A1 5 我知道一项一
  • 如何使用VBA根据条件删除Excel中的行?

    我目前正在构建一个宏来格式化数据表并删除不适用的数据行 具体来说 我希望删除列 L ABC 的行以及删除列 AA DEF 的行 到目前为止 我已经实现了第一个目标 但还没有实现第二个目标 现有代码是 Dim LastRow As Integ
  • VBA 字符串 255 个字符限制

    我在使用 VBA 时遇到问题 并注意到它的字符串限制为 255 个字符 我实际上正在尝试通过 POST 发送 JSON 并暂停执行 我注意到该字符串始终只有 255 个字符 有没有办法调整字符串的大小或其他什么 我在这个问题上浪费了大约 6
  • 在组合框中显示可见工作表

    您好 我有以下代码来在组合框中显示工作表 创建工作表后 工作表会自动添加到列表中 我不希望隐藏的工作表在保管箱中可见 我怎么做 Option Explicit Private Sub ComboBox1 Change If ComboBox
  • 在 MS Word 中运行外部 vba 代码

    我可以将外部代码链接到 Word 文档吗 我有很多带有宏的 Word 文档 VBA 代码 全部使用相同的代码 我希望代码从外部源运行 而不是从所有这些文档中运行 这样 如果我必须更新代码 我只有一个地方需要更新 您可以创建一个模板并将其放入
  • Excels COUNTIFS 函数中的数组作为条件,混合 AND 和 OR [重复]

    这个问题在这里已经有答案了 我已经在谷歌上搜索了一段时间 但似乎无法让它发挥作用 我使用 Excel 2010 希望混合使用 AND 和 OR 运算符来计算行数 我想做的是这样的 COUNTIFS A A string1 B B strin
  • 将html表格保存到excel中[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我必须编写一个程序 定期读取网页并将
  • JavaScript 错误处理的最佳实践是什么?

    我希望开始让我的 JavaScript 更加防错 并且我找到了大量有关使用的文档try catch finally and throw 但我没有从专家那里找到大量关于何时何地抛出错误的建议 每段代码都应该包含在 try catch 中吗 还
  • 如何处理 AJAX 请求中的会话超时

    我相信你们都熟悉使用 AJAX 的投票系统 嗯 看那边 我有类似的东西 当你投票赞成或反对时 它使用 AJAX 从 votes php 请求新值 问题是我正在使用会话来获取用户 ID 因此一个人只能投票一次 如果他们在页面上坐了一个小时然后
  • SpreadsheetML 文件扩展名被 IE 和 FF 更改 - 内容类型错误?

    我正在 PHP 中生成 SpreadsheetML 文件 当用户下载文件并保存时 默认情况下文件会另存为 Report xml 并在 Excel 中打开 但是 如果选择在 Excel 中打开文件而不是保存文件 则文件名将更改为 Report

随机推荐

  • Node.js 中 I/O 密集型的含义是什么

    我正在学习 Node js 还发现 Node js 最适合用于 I O 密集型任务 这让我有点困惑 因此 经过一些研究 我发现了这样的说法 读取和 或写入大量数据的应用程序 那么 这是否意味着 Node js 最好与数据一起使用 即读取大数
  • Camel-Jetty http代理+大响应数据导致问题:缓冲容量超出

    jetty专家 我在通过camel jetty作为http代理获取大数据时出错 欢迎任何经验 想法 建议 提前致谢 路线构建器代码 from servlet balancer matchOnUriPrefix true to jetty h
  • JVM 规范更新

    JVM 规范第 2 版的日期是 1999 年 自那时以来 我应该考虑学习哪些重要更新 如动态调用 这当然是为了了解现代 JVM 实现的内部原理 特别是 HotSpot 访问此链接http wikis sun com display HotS
  • 快速设置我的条形图的水平滚动

    我正在使用 Daniel Cohen Gindi 的图表框架 它很棒 但是 我希望我的条形图水平滚动以查看其他数据 我尝试添加滚动视图 但没有成功 我也尝试了不同的值 例如 barChart setVisibleXRangeMaximum
  • 捕获 Exception 类而不是 Exception 子类是不好的做法吗?

    我有一个抛出 Exception 子类的方法 如果我对 Exception 的每个子类执行相同的捕获功能 那么仅捕获 Exceptions 类是不好的做法 还是应该单独捕获每个异常 是的 这是不好的做法 因为它使 catch 块捕获不应该捕
  • 在silverlight中获取xml中的所有节点名称

    我创建了一个这样的xml
  • 带有 CoordinatorLayout 的 Snackbar 禁用关闭

    我正在使用支持 浮动操作按钮 Snackbar 协调器布局 我需要协调器布局这样如果SnackBar显示的是浮动操作按钮向上移动以为 Snackbar 腾出空间 为了更好地理解 请检查此video http material design
  • JSF 表格和德语变音符号

    我在我的一个 JSF 这是一个 Facelet 中遇到了一个奇怪的问题 我正在使用 Richfaces 在一页上我得到了一个普通表单
  • Application.Current.Shutdown() 不会终止我的应用程序

    我刚刚启动了一个新的 C WPF 应用程序 并使用了来自WPF Contrib 项目 http wpfcontrib codeplex com 我可以启动程序 将 退出 菜单项添加到 NotifyIcon 的 ContextMenu 然后将
  • 反 CSRF cookie?

    我正在构建一个大量使用ajax 的应用程序 大多数反 CSRF 解决方案都围绕将一些信息放入视图状态并在发布时处理该数据 但是 我无权访问 ajax 调用中的视图状态 我计划生成一个 GUID 以在 cookie 和会话状态中插入令牌 使
  • 在 Swift 中创建“forCount”控制结构

    在许多项目中 这种控制结构非常适合可读性 forCount 40 this block is run 40 times 你可以做正是如此 https stackoverflow com a 4844280 294884在 Objective
  • 获取当前脚本的路径

    我想以编程方式将工作目录设置为当前脚本的路径 但首先我需要获取当前脚本的路径 所以我希望能够做到 current path retrieve the path of current script setwd current path Jus
  • 如何在 python 中 POST xml 元素

    基本上我有这个 xml 元素 xml etree ElementTree 我想将其 POST 到 url 目前我正在做类似的事情 xml string xml etree ElementTree tostring my element da
  • 如何实时更新RecyclerView?

    我有一个列表 任何用户都可以随时更新 该列表显示在回收视图 我想实时更新这个列表 以便用户可以获得更好的用户体验 因为用户不需要多次执行刷新 现在的问题是 如何实时更新这个列表 使用 RecyclerView 您可以更新单个项目 项目范围或
  • 使用 UIManagedDocument 在 ios5 中预加载核心数据数据库

    我正在尝试在我的应用程序中包含预加载的核心数据数据库 我正在使用这里给出的解决方案query https stackoverflow com questions 8683892 pre load core data database in
  • 具有相同成员类型的 C 结构是否保证在内存中具有相同的布局?

    本质上 如果我有 typedef struct int x int y A typedef struct int h int k B 我有A a C 标准是否保证 B a gt k是相同的a y 具有相同成员类型的 C 结构是否保证在内存中
  • Maven - 抑制 [警告] JAR 将为空 - 没有内容被标记为包含在 pom.xml 中

    我的maven项目故意地只需要src test java and src test resources 移除后src main 文件夹中 预期的警告出现在mvn verify WARNING JAR will be empty no con
  • AttributeError:__enter__ 使用 with 语句 SqlAlchemy 会话

    我明白了AttributeError enter 当我尝试像这样使用 SQLAlchemy 会话时guide http docs sqlalchemy org en latest orm session basics html My cod
  • 有效地查找文本文件中的最后一行[重复]

    这个问题在这里已经有答案了 我需要从许多非常大 几百兆字节 的文本文件中提取最后一行来获取某些数据 目前 我正在使用 python 循环遍历所有行 直到文件为空 然后处理返回的最后一行 但我确信有一种更有效的方法来执行此操作 使用 pyth
  • VBA Excel 简单错误处理

    我尽可能多地上网查看 除了微软支持网站 该网站由于某种原因在工作中被屏蔽 我试图简单地跳过一个错误 我在这里编写的代码经过简化 但应该以相同的方式工作 我的代码应该做什么 我的一名潜艇在循环中创建形状并命名它们 btn 1 btn 2 等