【发布时间】:2019-04-17 16:52:18
【问题描述】:
我有一个小宏,我希望它执行以下操作:第一个输入框要求用户选择一个空范围,他希望在该范围的每个单元格中包含借方/贷方... 第二个输入框要求用户选择一个金额范围(该范围内每个单元格中的每个金额都可以是负数或正数)。然后从这两个选择中,我希望它在选择第一个输入框范围的每个单元格上返回“D”(借方)或“C”(贷方)。不幸的是,我的宏无法正常工作,事实上,当我尝试执行它时,它会返回 #NAME? (而不是“C”或“D”)在通过我的第一个输入框选择的范围的每个单元格中。例如在下图中,我通过我的第一个输入框选择范围 K2:K5(作为一个空范围)并通过我的第二个输入框选择范围 C2:C5,在执行宏后,它在每个单元格中返回 #NAME范围 K2:K5。 非常感谢您的帮助。 哈维 请在下面找到我的 VBA 代码:
Sub ReturncorrectCreditdebitcolumnbasedonselectioninputbox()
Dim c As Range
Dim WorkRng2 As Range
Dim WorkRng As Range
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Please select the range where you want your Dedit/Credit", 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 WorkRng
c.FormulaR1C1 = _
"=If(WorkRng2.Value>0, ""D"",""C"")"
Next c
End Sub
【问题讨论】:
-
Excel 将不知道
WorkRng2.Value是什么 [作为公式的一部分]。您也许可以用" & WorkRng.Address & "替换它? -
"=If(" & WorkRng2.Value & " >0, ""D"",""C"")" -
谢谢 CLR,谢谢 Comintern,我试图在 VBA 代码中插入您的公式 Comintern,但是当我运行宏时,我收到一条错误消息:运行时错误 13,类型不匹配。跨度>