当单元格更改时,VBA 运行宏,但如果通过宏则不运行

2024-01-08

好吧,我不确定这是否容易实现,但我会尝试。

如果单元格发生更改,我使用此子程序来执行一些宏:

Private Sub Worksheet_Calculate()
Dim target As Range
Set target = Range("b4")
If Not Intersect(target, Range("b4")) Is Nothing Then
Call init
End If
End Sub

这工作正常,但我有一点问题。

细胞B4正如上面的单元格更改子部分中所引用的,其值由动态的命名范围确定,并包含另一张工作表上的值列表。我使用数据验证工具来制作B4包含指定范围内容的下拉列表。

我有另一个宏,其目的是更新此列表。它的作用是清除当前列表,查询数据库并将一堆值输出到范围内。问题是,当这个宏运行时,它会导致B4改变(如B4参考范围内的值)。这反过来又导致我的“单元格更改”宏运行并抛出错误。

有没有办法在我更新它引用的列表时阻止“单元格更改”宏运行?

希望这个问题有意义。


您可以禁用Worksheet_Calculate事件通过使用Application.EnableEvents如下。请注意,这将禁用任何WorkSheet or WorkBook其间可能发生的事件Application.EnableEvents = False and Application.EnableEvents = True

所以如果你的另一个子程序像这样运行 -Worksheet_Calculate事件不会触发

Sub Other_Sub()
Application.EnableEvents = False
[b4].Value = "10"
'other stuff
Application.EnableEvents = True
End Sub
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当单元格更改时,VBA 运行宏,但如果通过宏则不运行 的相关文章

  • Excel 2003 中的 IFERROR

    我通过阅读几个线程了解到IFERROR在 Excel 2003 中由IF ISERROR 我尝试从 Excel 2007 复制的代码是 IFERROR A1 我知道必须有一个简单的解决方案将其转换为IF ISERROR 但我没有任何效果 意
  • 在 Excel 中生成随机 -1 和 +1 值

    The Rand 函数会生成一个 0 到 1 之间的实数 这Randbetween 1 1 将生成 1 0 或 1 我想要的只是 1或1 那么 1 到 1 之间的实数呢 Easy IF RAND lt 0 5 1 1 要获得实数 请使用 R
  • 使用 split 函数到数组中会导致编译错误:无法分配给数组

    我正在尝试使用split 函数根据给定名称字符串中的空格拆分名称 当尝试编译我在下面编写的代码时 出现编译错误 无法分配给数组 我几乎从这里复制了微软的示例 https support microsoft com en us kb 2662
  • 使用PHP从doc、xls文件中读取数据

    我想知道是否可以从 doc 和 xls 文件中读取数据并将 将内容读取到图像文件中 创建文档的页面样本 例如 我有一些文件希望我的客户购买 所以我需要自动创建小图像 例如我的文档样本 我们将不胜感激您的帮助 对于读取 xls 文件 我真的推
  • 将 MS 转换为秒

    我发现这个公式可以用来将 MS 转换为秒 但它是为 Excel 2002 编写的 而我正在使用 2010 CONCATENATE TEXT INT B1 1000 86400 hh mm ss B1 INT B1 1000 1000 以下是
  • 在 VBA 中捕获 shell 命令的输出值?

    发现这个功能http www cpearson com excel ShellAndWait aspx http www cpearson com excel ShellAndWait aspx 但我还需要捕获 shell 的输出 有什么代
  • 在 Excel 中自动复制和粘贴特定范围的最佳方法是什么?

    我对 VBA 非常陌生 我想自动化一项任务 但不知道从哪里开始 我有一个如下所示的数据集 样本数据 https i stack imgur com jxqFI png 我想做的是循环遍历 A 列 如果其中有内容 始终是电子邮件 请选择所有行
  • 将 Excel 读取到从第 5 行开始并包括标题的 Python 数据框

    我有一个 Excel 工作簿 它在打开时运行一些 vba 刷新数据透视表并执行其他一些操作 然后我希望将数据透视表刷新的结果导入到 python 中的数据框中以进行进一步分析 import xlrd wb xlrd open workboo
  • 数据透视表错误 |无效的调用或过程

    我需要一些帮助来解决这个问题 我正在尝试创建一个数据透视表 从第一季度开始 在同一张表中包含一系列数据 第一个 if 语句在那里是因为最后一列并不总是包含标题 所以我将其包含在那里 我希望范围是动态的 因为所制作的表格的大小将根据工作表中数
  • 使用 PhpSpreadsheet PHP 设置单元格边框样式

    我使用 PhpSpreadsheet 来读取或写入 Excel 文件 我想向我的 Excel 添加边框样式 所以我使用了以下代码
  • 索引行和列意外结果

    我试图理解以下行为 如果我有以下数据 A B a 1 b 2 c 3 如果我使用 INDEX A 1 B 3 它将正确显示整个范围 如果我使用 INDEX A 1 B 3 1 它将正确显示两列第一行的数据 如果我使用 INDEX A 1 B
  • 使用图表时避免使用“激活”和“选择”(Excel)

    我知道使用Activate and Select在 Excel 中 VBA 不是最佳实践 我看过有关如何在处理范围时避免它们的参考资料 例如 LINK https stackoverflow com questions 10714251 e
  • 使用宏从 Excel 电子表格中删除任何非指定字符

    我正在尝试通过删除任何非标准字符来清理 Excel 中的 CSV 文件 我唯一关心保留的字符是 A Z 0 9 和一些标准标点符号 任何其他字符 我想删除 当它找到包含我未指定的任何字符的单元格时 我已经得到了以下宏来删除整行 但我不确定如
  • 删除 VBA 按钮集合

    我正在使用以下脚本在 Excel 中生成按钮 范围正是我希望放置它的位置 Sub CreateAddButton rng As Range Dim btn As Button With Worksheets User Set btn But
  • 有没有办法使用 Python Pandas 读取所有行,直到遇到空行

    我在 Excel 中有很多行 并且这些行在空行之后填充有垃圾值 有没有办法使用 Python pandas 只读取 Excel 中第一个空行之前的记录 我不知道 read excel 是否可以做到这一点 如果您从 Excel 导入空行 这些
  • 从 X、Y、Z 数据、Excel 或其他工具进行 3D 绘图

    我的数据看起来像这样 1000 13 75 2 1000 21 79 21 1000 29 80 02 5000 29 87 9 5000 37 88 54 5000 45 88 56 10000 29 90 11 10000 37 90
  • python XlsxWriter 设置多个单元格周围的边框

    I need an easy way to set border around multiple cells like so 我发现的只是 1 个单元格的边框 并合并单元格 这不是我需要的 我期待类似的事情 worksheet range
  • 有没有一种方法可以将这些列转换为数据格式?

    有没有办法将这些列转换为数据格式 gg mm aaaa 时 分 秒 日期 20220601 gt gt gt gt 2022 06 01 小时 3047 gt gt gt gt gt 00 30 47 时 分 秒 我对 B 列有严重问题 我
  • 行编号选择自动填充直到最后[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有一个包含数千行的表 我想通过在第一行旁边添加 1 2 3 来对行进行编号 然后选择这些行并拖动到最后以使用递增的数字进行填充 如何自动
  • 从 Excel 应用程序对象中查找位数(32 位/64 位)?

    是否可以从 Microsoft Office Interop Excel ApplicationClass 确定 Excel 是以 32 位还是 64 位运行 Edit该解决方案应该适用于 Excel 2010 和 Excel 2007 此

随机推荐

  • 将逗号分隔的浮点数字符串转换为列表?

    我需要定义一个函数txtnum L 需要一串逗号分隔的浮点数 例如 1 5 2 5 3 5 作为参数并将其转换为列表 1 5 2 5 3 5 我尝试过使用 split join map 等 并且无法获取任何内容来返回不包含引号的列表 我对
  • 如何将 GPS 观察器移至 App.xaml 超类并将事件调度至其他页面/类?

    我是 silverlight WPF 和 WP7 开发新手 但我熟悉使用控制台或 Windows 窗体开发 C 所以请耐心等待 我正在尝试使用 Silverlight SDK 和 Microsoft Maps MapControl 以及 S
  • 如何将 recyclerView 中的前 4 项设置为可见性消失?

    实际上 我有一个菜单 可以在 recyclerView 中添加 MainActivity 按钮 在该菜单中我显示所有添加的按钮 以便可以删除所选按钮 但是我有 4 个该 recyclerView 的第一个项目应该是默认的 所以没有人应该触摸
  • DataGridView右键菜单/复制示例?

    我的表单上有一个 DataGridView dgv1 在特定的单元格中 我希望用户能够右键单击并选择 复制 以将单元格的内容复制到剪贴板 任何人都可以向我指出一个教程或网站的方向 展示如何在 C 中完成此任务吗 Thanks 您可以使用 C
  • bookdown 中的代码折叠

    RMarkdown 中用于 html 文档的代码折叠选项非常棒 该选项使编程方法对于感兴趣的人来说是透明的 而无需强迫观众滚动浏览数英里的代码 代码与散文和交互式图形输出的紧密放置使得整个项目更容易被更广泛的受众所理解 此外 它还减少了对额
  • 优化构造函数调用次数

    在工作中 我们有一个带有昂贵构造函数的类 因此我们希望调用它的次数尽可能少 我们研究了它的用途 并尝试使代码对 RVO 更加友好 然而 我们在 g 编译器中发现了一个怪癖 我们不明白发生了什么 请考虑operator 的两种实现 const
  • 单元测试静态类

    设想 语言C 使用VS2008单元测试框架进行单元测试 我有一个带有静态构造函数和 2 个方法的静态类 我编写了 4 个测试方法来测试整个班级 我的静态构造函数有一些重要的初始化 现在 如果我同时运行所有 4 个单元测试用例 静态构造函数将
  • 约束布局中的背景图像不起作用

    我希望我的应用程序在后台使用图像来进行注册和登录功能 我正在使用 android studio 2 3 到目前为止我可以看到自去年以来很多事情都发生了变化 我们现在使用相对或线性布局的地方就是约束布局 我包含了根布局的代码如下 androi
  • 由于 java.lang.IllegalArgumentException,应用程序在启动时崩溃:列“_id”不存在

    每当我启动我的应用程序时 我都会得到一个java lang IllegalArgumentException column id does not exist我的 LogCat 中出现错误 我已经创建了专栏 id 但它仍然抛出这个 这是我的
  • 零或一到零或一的关系

    有没有办法创建一个0 or 1 to 0 or 1数据库中的关系 例如 假设我有一张经理表和一张艺术家表 经纪人只能管理一名艺人 艺人也只能拥有一名经纪人 然而 经理人可以没有艺人 即寻找艺人来管理 而艺人也可能没有经理人 有什么办法可以做
  • 如何在 Facelets 的 EL 布尔表达式中使用 && ?

    我在弄清楚如何在 Facelets 中的 EL 表达式上执行和操作时遇到了一些麻烦 所以基本上我有
  • 如何在 asp.net MVC 中生成下载文件的链接?

    我正在测试轻而易举报告 http www codeplex com doddlereport从 IEnumerable 对象生成一些报告 我需要生成这样的链接 PDF http myserver com reports ProductsRe
  • ipc:// 上的 ZeroMQ REQ/REP 和并发性

    我使用 REQ REP 0MQ ipc 套接字实现了一个 JSON RPC 服务器 我遇到了奇怪的行为 我怀疑这是由于 ipc 底层 unix 套接字不是真正的套接字 而是一个事实一根管子 根据文档 必须强制执行严格的 zmq send z
  • 使用 Python 将 PDF 转换为一系列图像

    我正在尝试使用 Python 将多页 PDF 转换为一系列 JPEG 我可以使用可用的工具轻松地将 PDF 拆分为单独的页面 但我还没有找到任何可以将 PDF 转换为图像的工具 PIL 不起作用 因为它无法读取 PDF 我发现的两个选项是通
  • 带 R 的地图:无法更改点/坐标的投影

    我想绘制一个具有多个点 也称为纬度和经度坐标组合 的世界地图 我不想使用墨卡托 因此我重新投影世界地图的数据和我的坐标 当世界的投影发生变化时 所有点都会突然放置在地图的中间 这是一种常见行为 当投影不对齐时 请参阅https www ea
  • 沿一个坐标轴的 3D 倾斜变换矩阵

    有没有一种方法可以计算沿一个坐标轴的倾斜变换矩阵 给定倾斜角度 如下 这应该在很大程度上适用于使用变换矩阵倾斜对象 特别是使用 glMultMatrix matrix matrix1 1 0 0 0 tan a 1 0 0 0 0 1 0
  • Cordova 视频编辑器插件 InvalidOutputFormatException

    我在用着科尔多瓦插件视频编辑器 https www npmjs com package cordova plugin video editor处理以前录制的视频 该插件开始转换 但由于某种原因失败 我得到的错误是这样的 net yprest
  • 该程序集是由比当前加载的运行时更新的运行时构建的,无法加载

    我收到此错误 无法加载文件或程序集 Twitterizer2 Asynchronous 或其中之一 它的依赖项 该程序集是由比 当前已加载运行时且无法加载 但我已经从我的引用中删除了 twitterizer2 Asynchronous 库
  • 如何管理服务器上的数据库连接?

    我的 Web 应用程序中的数据库连接存在严重问题 由于我对单例数据库类的整个应用程序使用单个数据库连接 因此如果我尝试并发数据库操作 两个用户 数据库将回滚事务 这是我使用的静态方法 所有线程 servlet 都调用静态 Database
  • 当单元格更改时,VBA 运行宏,但如果通过宏则不运行

    好吧 我不确定这是否容易实现 但我会尝试 如果单元格发生更改 我使用此子程序来执行一些宏 Private Sub Worksheet Calculate Dim target As Range Set target Range b4 If