如何让细胞有条件地消极? (EXCEL)

时间:2013-03-22 18:26:56

标签: 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_的 __ __ 中号 __ _ ___ Ñ
____ 上个月输入
____ 二月
__ _ ** Venue_的供应商 _Amount **
二月 _ __ _ ___ 1,666
二月
__ _ __ _ 3,240
二月
__ _ __ _ _718

1 个答案:

答案 0 :(得分:1)

这是一个宏来做这个伎俩:

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