根据其他单元格/行输入更改特定单元格中的值

时间:2012-04-27 13:00:05

标签: excel vba excel-vba

嗨,我对公式和excel相当新,但这是我遇到的问题之一。

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

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

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

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

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

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

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

    我无法在相关单元格中添加公式,因为这些单元格被一个按钮点击事件覆盖,该事件将数据输入到该字段中。

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

2 个答案:

答案 0 :(得分:1)

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

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

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

P.S。:如果您的Windows>使用,代替;控制面板>地区和语言>其他设置...>列表分隔符设置为逗号

答案 1 :(得分: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