2013-06-06 2 views
0

나는 구글 - 푸와 reaseaching 시도했지만이 작품 만들 수 없습니다 있습니다 $ :하우투 쇼 값은

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 ...

그러나 값, 숫자 또는 텍스트를 반환하지 않습니다.

내가 뭘 잘못 했니?

+3

잘 보이는 나는 그것을 실행하고 테스트에는 문제가 없었다. 그 세포들이 실제로 비어 있지 않다는 것이 확실합니까? 또한 창에서 주소와 값 사이의 거리가 적당하다는 것을 알았 으면 창이 둘 다 볼 수있을 정도로 넓어야합니다. – user2140261

답변

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" 

중 하나 봅니다.

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