我正在处理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
答案 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