如何使细胞有条件地呈阴性?(Excel)



我在Excel工作表中处理每月应计费用。我想写一个函数或宏,当月份变化时,值变为负值。我有一个列(K),其中包含月份,另一个单元格(M18)包含月份,如果K=M18,我希望Amount (N)列中的值变为负值。但=if($K21=$M$18,N=N*-1,")不起作用。我可以在旁边写另一列,比如Q,我可以写=if($K21=$M$18, N*-1, ""),但是我需要N列本身的值是负的。是否有一种方法可以编写宏或嵌套函数,以有条件地将N的值替换为自身的负版本?如果我要用Q来计算- N的值,我能不能再求一个函数使N=Q?

K_ __ L __ M __ _ ___ N
___ 输入前一个月
___
2月
__ _ * * Venue_ 供应商 _Amount * *
2月 _ __ _ ___ 1666
2月
__ _ __ _ 3240
2月
__ _ __ _ _718

这里有一个宏来完成这个任务:

Sub AccrualsMacro()
Dim rngN As Range
Dim clVal As Double
Dim cl As Range
Dim makeNegative As Boolean
makeNegative = [K21] = [M18]
If makeNegative Then
    Set rngN = Range("N1", Range("N1").End(xlDown))
    For Each cl In rngN
        With cl
            clVal = .Value
            If Not clVal < 0 Then 'only apply this rule if the value is still positive
               .Value = -1 * clVal
            End If
        End With
    Next
End If
End Sub

最新更新