Excel VBA InputBox不在循环中返回范围值

时间:2013-10-23 22:51:13

标签: excel vba

我过去曾使用过此代码,但今天由于某些原因它无法运行。我已经在互联网上搜索了答案,从我读过的内容我的InputBox设置正确。当我使用硬编码范围时,我的messageBox返回正确的单元格值,但是当我使用输入框时,不返回任何值。

我对VBA中的编码相当新,这似乎应该是一个简单的解决方案。希望有人可以提供帮助:)

Dim rRng As Range
Dim rCell As Range

Set rRng = Application.InputBox(Prompt:="Select Cells to check", Type:=8)
'Set rRng = Sheets("Table 3-1").Range("F11:F13")
For Each rCell In rRng.cells
    a = rCell.Value
    MsgBox "Cell Value is: " & a
Next

2 个答案:

答案 0 :(得分:0)

确保您选择包含值的单元格。你的代码工作得很好。 运行宏时,请确保您在正确的工作表上。

答案 1 :(得分:0)

  • 使用rRng
  • 检查If rRng Is Nothing Then变量中的值是否设置正确
  • 确保没有不需要的参考 工作簿。
  • VBA IDE > Standard tool bar > Goto Debug > Compile VBA code可能会突出显示可能的问题。

  Sub test()

    Dim rRng As Range
    Dim rCell As Range

    On Error Resume Next
    Set rRng = Application.InputBox(Prompt:="Select Cells to check", Type:=8)
    On Error GoTo 0

    If rRng Is Nothing Then
        MsgBox "No Range selected"
        Exit Sub
    End If

    For Each rCell In rRng.Cells
        a = rCell.Value
        MsgBox "Cell Value is: " & a
    Next

End Sub