Range 개체가 지정된 경우 셀 범위의 각 셀을 반복합니다.
다음과 같은 코드가 있다고 가정해 보겠습니다.
Sub TestRangeLoop()
Dim rng As Range
Set rng = Range("A1:A6")
''//Insert code to loop through rng here
End Sub
저는 다음의 컬렉션을 통해 반복할 수 있기를 원합니다.Range
지정된 각 셀에 대한 개체rng
개념적으로, 저는 그렇게 하고 싶습니다.
For Each rngCell As Range in rng
''//Do something with rngCell
Next
파싱으로 해결할 수 있다는 것을 압니다.rng.Address
및 건물Range
수동으로 객체를 만들지만 문자열 구문 분석을 포함하지 않는 더 직접적인 방법이 있기를 바랍니다.
Sub LoopRange()
Dim rCell As Range
Dim rRng As Range
Set rRng = Sheet1.Range("A1:A6")
For Each rCell In rRng.Cells
Debug.Print rCell.Address, rCell.Value
Next rCell
End Sub
사용할 수 있습니다.Range.Rows
,Range.Columns
또는Range.Cells
각 컬렉션에는 다음이 포함됩니다.Range
물건들.
다음은 딕의 예를 수정하여 작업할 수 있는 방법입니다.Rows
:
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
그리고.Columns
:
Sub LoopRange()
Dim rCell As Range
Dim rRng As Range
Set rRng = Sheet1.Range("A1:A6")
For Each rCol In rRng.Columns
For Each rCell In rCol.Rows
Debug.Print rCell.Address, rCell.Value
Next rCell
Next rCol
End Sub
딕의 대답을 메모하기 위해, 이것은 맞지만, 저는 각 루프를 사용하는 것을 추천하지 않습니다.For Each(각자)는 액세스할 수 없는 장면 뒤에 COM 셀에 대한 임시 참조를 만듭니다(COM 셀을 폐기하는 데 필요함).
자세한 내용은 다음을 참조하십시오.
Excel interop 개체를 제대로 정리하려면 어떻게 해야 합니까?
이 문제를 설명하려면 각 예에 대한 예제를 사용하여 응용 프로그램을 닫고 작업 관리자를 확인하십시오.Excel 인스턴스가 여전히 실행 중임을 확인해야 합니다(모든 개체가 제대로 폐기되지 않았기 때문).
ADO를 사용하여 스프레드시트를 쿼리하는 것이 더 간편합니다.
http://technet.microsoft.com/en-us/library/ee692882.aspx
여기서 죽은 자들을 부활시키지만, 범위는 "A:A"를 각 루프에 사용하면 잠재적 무한 루프가 발생합니다.해결책은, 제가 아는 한,Do Until
고리.
Do Until Selection.Value = ""
Rem Do things here...
Loop
언급URL : https://stackoverflow.com/questions/3875415/loop-through-each-cell-in-a-range-of-cells-when-given-a-range-object
'it-source' 카테고리의 다른 글
SQL Server 테이블의 기본 키를 어떻게 나열합니까? (0) | 2023.05.01 |
---|---|
테이블 간에 SQL 데이터 이동 (0) | 2023.05.01 |
디렉토리의 모든 파일 및 폴더를 삭제하는 방법은 무엇입니까? (0) | 2023.05.01 |
어떻게 하면 맥에 파이썬의 pip3를 설치할 수 있습니까? (0) | 2023.05.01 |
wpf TextBlock 컨트롤에 새 줄을 추가하는 방법은 무엇입니까? (0) | 2023.05.01 |