根据另一个单元格值将加号更改为减号

时间:2013-10-08 10:00:11

标签: excel vba if-statement

我在互联网上获得了这段代码。

如果F列中的值(与金额位于同一行)为Debit-Outstanding,我希望第I列(第9行)中的金额更改为减去金额(借方金额)。

Sub test()
Dim rcel As range
Dim Rng As range
Set Rng = range(ActiveCell, Cells(Rows.Count, _
ActiveCell.Column).End(xlUp))
For Each rcel In Rng
If rcel.Value <> "" And rcel.Value >= 0 Then
rcel.Value = rcel.Value * -1
End If
Next rcel
End Sub

我引入这部分来检查F列中的值

And Text.Offset("-3, 0") = "Debit-Outstanding"

2 个答案:

答案 0 :(得分:2)

我认为VBA宏过于复杂,无法满足您的需求。

如果它是一次性的 - 只需创建另一个列,其中你有一个公式,如“= I9 *(IF(F9 =”Debit-Outstanding“, - 1,1)),复制到最后,然后复制值,删除计算列,就是这样。

如果“Debit-Outstanding”值可能会更改,或者您要添加数据,只需将上面带有公式的列合并到工作簿中,然后使用该列代替当前包含值的列。

希望有所帮助!

答案 1 :(得分:1)

尝试一下:

Sub test()
    Dim rcel As Range
    Dim Rng As Range
    Dim rw As Long
    Set Rng = Range(ActiveCell, Cells(Rows.Count, ActiveCell.Column).End(xlUp))
    For Each rcel In Rng
        With rcel
            rw = .Row
            If .Value <> "" And .Value >= 0 And Cells(rw, "F") = "Debit-Outstanding" Then
                .Value = -.Value
            End If
        End With
    Next rcel
End Sub