【发布时间】:2018-11-06 16:16:39
【问题描述】:
我尝试创建一个带有 2 个输入框的宏,通过第一个输入框,用户选择一个范围,将其写入每个单元格 C 或 D(贷方或借方) 通过第二个输入,用户选择一个范围,在每个单元格上写入相应的数量。
我该怎么做如下:
如果贷方/借方范围内的相应单元格值“D”,则相应单元格(我指的是与该借方对应的金额)保持正数,否则变为负数。
例如,如果用户在 J 列中选择了 C/D 的范围,然后用户通过第二个输入框在 B 列中选择了所有相应的金额,我希望如果 J1="D" 返回一个B1 中的正值,否则在 B1 中返回负值,以此类推所有其他行...
我尝试执行我的宏,但它不能正常工作我收到错误消息#NAME?...
请在下面找到 2 个屏幕截图(执行宏之前和之后)以及 VBA 代码
如果有人可以帮助我,那就太好了。
Sub ReturncorrectsignofamountaccordingtoDorC()
Dim c As Range
Dim WorkRng2 As Range
Dim WorkRng As Range
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Please select the range D/C", xTitleId, WorkRng.Address, Type:=8)
Set WorkRng2 = Application.Selection
Set WorkRng2 = Application.InputBox("Please select the range of amounts", xTitleId, WorkRng.Address, Type:=8)
For Each c In WorkRng2
c.FormulaR1C1 = _
"=IF(c.WorkRng.value=""D"",c.WorkRng2.value= c.WorkRng2.value, c.WorkRng2.value= -c.WorkRng2.value)"
Next c
End Sub
【问题讨论】:
-
在你的例子中所有的值都是正数怎么样?