【发布时间】: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。