【问题标题】:Issue substituting a range variable (Excel VBA)替换范围变量的问题(Excel VBA)
【发布时间】:2017-04-26 00:08:18
【问题描述】:

我无法在我的代码中替换范围变量 WeekdayRule。第三行代码工作得很好。下面的第四行代码触发了一个

应用程序定义或对象定义的错误“1004”。

我在这里错过了什么?

    Dim WeekdayRule As Range
    Set WeekdayRule = ActiveSheet.Range("M17:O112")

    ActiveSheet.Range("M17:O112").FormatConditions.Delete

    With ActiveSheet.Range("WeekdayRule").FormatConditions _
        .Add(Type:=xlExpression, Formula1:="=AND(M17<=($N$8*$V17), $V17>=$N$9)")
        .Interior.ColorIndex = 44
    End With

【问题讨论】:

  • ActiveSheet.WeekdayRule.FormatConditions 使用这个并去掉行尾的_。

标签: vba excel


【解决方案1】:

WeekdayRule 已经是一个已定义的 Range 对象,所以使用:

WeekdayRule.FormatConditions.Delete
With WeekdayRule.FormatConditions _
...

【讨论】:

    【解决方案2】:

    您需要指定 FormatConditions 集合的索引,以便指定要删除的 FormatCondition(注意单数)对象。例如:

    ActiveSheet.Range("M17:O112").FormatConditions(index).Delete
    

    【讨论】:

    • 这不是实际问题。首先他说这行代码运行良好。其次,如果要删除 all FormatConditions,则不需要指定索引,因此复数是正确的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-21
    • 1970-01-01
    • 2018-11-11
    • 1970-01-01
    相关资源
    最近更新 更多