如何显示数组中单元格的值

时间:2013-06-06 20:31:38

标签: excel vba excel-vba

我尝试过使用Google-Fu进行重新安装,但无法完成这项工作:

Sub LoopRange()

Dim rCell As Range
Dim rRng As Range

Set rRng = Sheet1.Range("A1:A6")

For Each rCell In rRng.Rows
    Debug.Print rCell.Address, rCell.Value
Next rCell

End Sub

它确实以以下格式显示立即窗口中的地址: $ A $ 1 $ A $ 2 ...

但它不返回任何值,数字或文本。

我在这里做错了什么?

2 个答案:

答案 0 :(得分:0)

Set rRng = Sheet1.Range("A1:A6")

这引用了VBA对象Sheet1,它几​​乎肯定与您正在查看的工作表不同。这可能是不同的顺序或命名不同。

尝试

之一
Set rRng = ActiveSheet.Range("A1:A6")  'This is the current sheet
Set rRng = Sheets(1).Range("A1:A6")  'This is the sheet in index 1 in your workbook, left to right
Set rRng = Sheets("Sheet1").Range("A1:A6") 'This is the sheet named "Sheet1"

取决于您的目标。

答案 1 :(得分:0)

您可以向Debug.Print添加另外两个值,即rCell.Parent.Parent.Name, rCell.Parent.Name,它会显示rcell指向的工作簿名称和工作表名称。这有助于您确定问题。

 Sub LoopRange()

    Dim rCell As Range
    Dim rRng As Range

    Set rRng = Sheet1.Range("A1:A6")

    For Each rCell In rRng.Rows
        Debug.Print rCell.Parent.Parent.Name, rCell.Parent.Name, rCell.Address, rCell.Value
    Next rCell

End Sub

最好指定工作簿,因为可以打开多个工作簿。

 Set rRng = ThisWorkbook.Sheets("sheet1").Range("A1:A6")

HTH