我在互联网上获得了这段代码。
如果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"
答案 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