【问题标题】:Excel VBA is not recording macro properlyExcel VBA 未正确录制宏
【发布时间】:2019-11-07 05:18:34
【问题描述】:

在我的 Excel 上录制宏时遇到了一些问题。我在 youtube 上遵循了一些教程,但我仍然无法录制然后正确执行宏。 这是一个例子:当我记录选择一个间隔的动作时,它应该在 VBA 编辑器中以类似的方式结束: Range("C3:E7").Select;相反,在 VBA 编辑器中,我找到 Range("C3:E7").DataFields,它在执行时显然不起作用。

同样,当我尝试记录从一个区间计算平均值的动作时,它最终会出现一些尴尬的代码,例如 大胆的。 = "=AVERAGE(R[-2]C[-1]:R[1]C[-1])"

我错过了什么?有什么我没有得到的吗?

提前感谢您的帮助。

【问题讨论】:

  • 您尝试过重启 Excel 吗?

标签: excel vba


【解决方案1】:

“尴尬代码”是 R1C1 表示法中的一个公式。这是在 VBA 中创建具有相对引用的公式的最简单方法。

宏记录器不是一个完美的工具。许多在录制宏时运行良好的东西在播放录制的宏时不会运行。此外,还有一些宏记录器根本没有注册的活动。在这些情况下,您需要查阅 VBA 文档并手动更正代码。

关于 Range Select 的代码 sn-p 缺少很多细节来确定出了什么问题。如果不查看您的数据并且不了解您的具体步骤,就无法进行故障排除。

【讨论】:

  • 我只是简单地激活记录器按钮,用鼠标选择一个单元格间隔,然后停止记录器。我哪里做错了?我认为这可能是记录器如何读取和写入我的动作的某种设置......
  • 我不知道单元格的“间隔”是什么。如果您指的是一个范围,即一行和/或列中的多个单元格,那么生成的代码将取决于该范围内的确切内容。如果代码返回 DataFields ,那么您在数据透视表中选择了某些内容,这与选择普通单元格不同。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-03
  • 2017-04-20
  • 2015-04-09
  • 2015-07-18
  • 1970-01-01
相关资源
最近更新 更多