【问题标题】:formula returning #NAME inside loop via selection from input box公式通过从输入框中选择返回循环内的#NAME
【发布时间】: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,类型不匹配。跨度>

标签: excel vba loops inputbox


【解决方案1】:

您不能一次比较多个单元格的值,因此只有当WorkRng2 是单个单元格时才有效。试试下面的,这是我对你想要做的最好的猜测。

Sub ReturncorrectCreditdebitcolumnbasedonselectioninputbox()

Dim c As Long
Dim WorkRng2 As Range
Dim WorkRng As Range

Set WorkRng = Application.InputBox("Please select the range where you want your Dedit/Credit", , , Type:=8)
Set WorkRng2 = Application.InputBox("Please select the range of amounts", , , Type:=8)

If WorkRng.Count <> WorkRng2.Count Then
    MsgBox "Ranges must be same size"
Else
    For c = 1 To WorkRng.Count
        WorkRng.Cells(c).Formula = "=If(" & WorkRng2.Cells(c).Value & ">0, ""D"",""C"")"
    Next c
End If

End Sub

【讨论】:

  • 非常感谢SJR的解释和修改,解决了我的问题!
猜你喜欢
  • 2016-10-14
  • 1970-01-01
  • 2015-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-25
  • 1970-01-01
相关资源
最近更新 更多