0

嗨,我对公式和 excel 还很陌生,但这是我遇到的问题之一。

我一直在使用 2 个条件格式公式,如下所示

  1. =INDIRECT("I"&ROW())="Del"

  2. =INDIRECT("I"&ROW())="Sum"

如果 del 在该行的 I 列中,第一个公式只是突出显示行灰色,如果该行中的 H 列为 0,是否还有一种方法可以将 K 列更改为 0?

对于第二个公式,它也根据该行的给定列中的总和输入突出显示该行的另一种颜色,是否也可以更改该行的 K 列以匹配给定行的 H 列的值。

我知道它们会相似,但我需要这样做,所以如果我的列有“del”并且行的 H 列为零,那么公式一只会将给定行中的 K 列归零。

对于第二个公式,如果“sum”在 I 列中,则值只会在给定行的 k 列中发生变化。除非实施这些更改,否则任何其他内容都需要保持未格式化。

我无法为有问题的单元格添加公式,因为这些单元格被按钮单击事件覆盖,该事件将数据输入到该字段中。

任何信息表示赞赏,公式或 VBA。

4

2 回答 2

1

a) 使用=$I2="Del"而不是 INDIRECT (2条件格式适用的范围的第一行在哪里,例如=$A$2:$Z$9999或插入条件格式时范围的第一个选定单元格的行)

b)如果您可以使用不会被覆盖的新列,则此新列中的公式可以是:

=if(and(I2="Del";H2=0);0;if(I2="Sum";H2;K2))

PS:如果您的 Windows > 控制面板 > 区域和语言 > 其他设置... > 列表分隔符设置为逗号,请使用,而不是;

于 2012-04-27T15:14:43.900 回答
0

只需相应地调整偏移量以更改您想要的列。

Dim firstCell As Range
Dim FoundCell As Range
Dim lastrow As Long

With ActiveSheet

    lastrow = .Cells(.Rows.Count, "H").End(xlUp).Row
    With Range("H2:H" & lastrow)

        Set FoundCell = .Find(What:="3")
        Set firstCell = FoundCell
        Do Until FoundCell Is Nothing
            '.offset(0,-1) would be the same row in Column "G"
            FoundCell.Offset(0, -1).Value = 0
            'if you wanted to assign the same value then do this:
            '  FoundCell.Offset(0, -1).Value = FoundCell.Value
            Set FoundCell = .FindNext(FoundCell)
            If FoundCell.Address = firstCell.Address Then
              Exit Do
            End If
        Loop
    End With
End With
于 2012-04-27T20:27:11.260 回答