FormatCondition.Modify 会导致运行时错误"1004"应用程序定义或对象定义错误



我有设置工作表的 vba 代码,其中一个功能是列"Y"的条件格式。当我尝试更改 FormatCondition 对象的 Formula1 时,我得到运行时"1004"。

高尔夫球场使用的 Excel 模板,以帮助对大量玩家进行的比赛进行评分。我使用突出显示单元格填充来引起对重要值的注意 - 在本例中 - 对"总游戏"中的前三名玩家的关注。三个 FormatCondition 对象存在于范围"Y8:Y127"的 FormatConditions 集合中。我已经编写了一些代码来部分枚举现有的 FormatCondition 对象,因此我知道它们在那里并包含预期的内容。我通过普通的Excel GUI创建了这些 - 而不是vba。

For k = 1 To 3
WST.Range("$Y$8:$Y$127").FormatConditions(k).Modify xlExpression, , 
Replace(strScore, "#", k, 1, 1)
Next k

当 k = 1 时出现问题。

替换函数调用的结果是:

=VLOOKUP(A8,$A$7:$AY$127,51,FALSE)=1

我正在尝试修改格式条件对象的公式 1,该对象开始时包含:

=VLOOKUP(A8,$AA$7:$AY$127,25,FALSE)=3

我从调试器尝试了以下内容:

? Replace(strScore,"#",k,1,1)
=VLOOKUP(A8,$A$7:$AY$127,51,FALSE)=1
? WST.Range("$Y$8:$Y$127").FormatConditions(k).Formula1
=VLOOKUP(A8,$AA$7:$AY$127,25,FALSE)=3

x=WST.Range("$Y$8:$Y$127").FormatConditions(k).Modify(xlExpression,,"=VLOOKUP(A8,$A$7:$AY$127,51,FALSE)=1","")

我尝试激活 WST 表,但结果相同。

所有尝试都会导致运行时错误"1004"

很抱歉在这个论坛上打扰了人们。我可以解决这个问题。对象失败,因为工作表受到保护。但是工作表使用以下方法进行保护:

`wks.Protect Password:=gPassword, UserInterfaceOnly:=True`

这应该允许 VBA 修改条件格式,但通过用户界面阻止模组。这适用于Excel中的大多数内容,但显然不适用于FormatCondition对象。

最新更新