【问题标题】:My Excel conditional formatting formula works manually but not coded in VBA我的 Excel 条件格式公式手动工作,但未在 VBA 中编码
【发布时间】:2016-11-19 04:30:52
【问题描述】:

我在“条件格式”图形界面中手动创建了这个公式

=IF(AND($M7<>""SpecificDeparment"",NOT(ISBLANK($O7))),TRUE)

它应该验证只有一个特定部门接受一个 ID,其他部门不能有一个 ID,用红色填充错误 ID 单元格,它手动工作得很好,我将公式替换为 RC 格式

=IF(AND(RC[-2]<>""SpecificDeparment"",NOT(ISBLANK(RC))),TRUE)

它运行并且对 Worksheet 没有任何影响,但如果我只允许一个条件(例如:=IF($RC[-2]&lt;&gt;""SpecificDeparment"",TRUE) 它可以工作并更改我的列填充颜色。

这是我用于在 VBA 中分配格式的代码:

With .Range(wrkbook.Sheets("Data").Cells(FirstRow, .Range("ID_Marker").Column), wrkbook.Sheets("Data").Cells(LastRow, .Range("ID_Marker").Column))

 .FormatConditions.Add Type:=xlExpression, Formula1:="=IF(AND(RC[-2]<>""SpecificDeparment"",NOT(ISBLANK(RC))),TRUE)"

    .FormatConditions(.FormatConditions.Count).SetFirstPriority
       With .FormatConditions(1)
        .Font.ColorIndex = MustFixDataFontColor
            .Font.Bold = MustFixDataFontBold
            .Interior.ColorIndex = 3
            .StopIfTrue = False
        End With

   End With
        DoEvents

【问题讨论】:

  • I know the formula is good - 真的吗? R1C1 不使用美元。
  • 当我将您的公式放入 msgbox 时,特定部门中缺少引号,只有一组引号,即“特定部门”
  • SpecificDeparment 似乎是 SpecificDepartment 的拼写错误。
  • 我在excel中的公式中没有$,我在编辑这个页面的代码时不小心把它们放了。拼写错误不是错误,我在代码上有真实姓名部门但将其替换为不共享公司信息。
  • 反逗号应该是两对,因为如果不是 VBA 代码会发送错误消息,则“DoubleInvertedCommas”是在代码中执行此操作的方式。有什么想法是我的问题吗? :(

标签: vba excel excel-formula


【解决方案1】:

上面的公式来自你的excel公式,下面的公式是vba公式放入msgbox时产生的代码

【讨论】:

    猜你喜欢
    • 2014-12-27
    • 2017-03-03
    • 1970-01-01
    • 2015-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多