programing

시트의 행 수

goodsources 2023. 6. 10. 09:03
반응형

시트의 행 수

목표:
변수에는 특정 시트의 행 수가 포함되어야 합니다.

문제:
시트에서 행의 양을 계산하려면 Excel VBA에서 어떤 구문 코드가 필요합니까?

중고 레인지 방법을 사용하는 것은 제가 가장 좋아하는 방법 중 하나이지만 주의하여 처리해야 합니다.몇 가지 결함이 있습니다.excel이 사용된 범위를 잘 추적하지 못하는 것은 알려진 문제입니다.VBA를 통해 사용된 범위를 참조하면 값이 현재 사용된 범위로 재설정됩니다.따라서 사용된 범위를 얻을 때 다음 하위 절차를 실행해 보십시오.

Dim lRowCount as Long

Application.ActiveSheet.UsedRange
lRowCount = Worksheets("MySheet").UsedRange.Rows.Count

그러나 이렇게 하면 사용된 범위 수가 표시되므로 워크북 맨 위에 빈 행이 있으면(필터 기준 등을 위해 공간을 남겨두는 경우가 많습니다) 해당 행은 계산되지 않습니다.사용된 범위 방법도 형식의 영향을 받을 수 있습니다.

마지막 행을 사용하고 싶은 경우 보다 안정적인 찾기 방법을 사용할 수 있습니다.

Dim rLastCell As Range
Dim lLastRow  As Long

Set rLastCell = ActiveSheet.Cells.Find(What:="*", After:=.Cells(1, 1), LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False)

If Not rLastCell Is Nothing Then lLastRow = rLastCell.Row

데이터가 들어 있는 셀이 하나 이상 있는 경우 위 내용을 다음과 같이 단순화할 수 있습니다.

Dim lLastRow  As Long

lLastRow = ActiveSheet.Cells.Find(What:="*", After:=.Cells(1, 1), LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False).Row

위에서 언급한 중고 레인지에 대해서는 여기를 참조하십시오.

다음을 시도할 수도 있습니다.

i = Sheets("SheetName").UsedRange.Rows.Count

그러나 행 삭제 및 지우기를 시작하면 약간의 오류가 발생할 수 있습니다.

더 나은 방법은 다음과 같습니다.

i = Cells(Sheets("SheetName").Rows.Count, 1).End(xlup).Row

이것은 각 행에 1열에 데이터가 있다고 가정합니다.

언급URL : https://stackoverflow.com/questions/11595816/amount-of-rows-in-sheet

반응형