0

我正在处理 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
____输入上个月
____二月
__ _ **地点_供应商_金额**
二月 _ __ _ ___ 1,666
二月
__ _ __ _ 3,240
二月
_ _ __ _ _718

4

1 回答 1

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
于 2013-03-22T18:39:59.477 回答