【问题标题】:My VBA code does not work in Office 2007我的 VBA 代码在 Office 2007 中不起作用
【发布时间】:2018-06-22 21:55:00
【问题描述】:

我使用 Office 2013 开发和测试了一些 VBA 代码,并且运行良好。但是当我在 Office 2007 上运行它时,代码在这一行中断...

ActiveSheet.Range("D6").Value = "=" & Worksheets("Formula").Range("AlarmsStatusFormula").Value

我收到的错误消息是运行时错误 1004:应用程序定义或对象定义错误。 D6 是同一个表的一部分,该表包含一个名为“消息”的列。

AlarmStatusFormula 包含此公式

IF(OR(ISNUMBER(SEARCH({"Recover"," NR"},[Message]))),"FOUND","")

注意,AlarmStatusFormula 命名范围具有工作簿范围。

这可能与 Excel 2007 与 2013 处理命名范围的方式有关吗? 你能帮忙吗?

【问题讨论】:

  • 我注意到在中断的行中,命名范围是:AlarmsStatusFormula;而每隔一次你引用它时,你称之为:AlarmStatusFormula。
  • 当你在VBA中处理公式时,你应该使用.Formula而不是.Value
  • Excel 2007 中的某些公式与最新版本的 Excel 中的相同公式具有不同的名称。 support.microsoft.com/en-us/help/2551525/…。也许 SEARCH 在 Excel 2007 中可以使用不同的名称?
  • @Mistella 这是一个拼写错误。命名范围是 AlarmsStatusFormula。

标签: vba excel


【解决方案1】:

在 Excel 2007 中,它应该是 TableName[Message] 而不仅仅是 [Message]

【讨论】:

  • @pnuts - Option Explicit 被注释掉
  • @FunThomas - 代码在 Excel 2013 中运行良好,但在 2007 年不行。无论如何我都会尝试你的建议
猜你喜欢
  • 2010-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多