programing

VBA를 사용하여 Excel 시트에서 공백이 아닌 열 수 찾기

i4 2023. 4. 11. 21:40
반응형

VBA를 사용하여 Excel 시트에서 공백이 아닌 열 수 찾기

VBA를 사용하여 Excel 시트의 사용된 열 수를 찾으려면 어떻게 해야 합니까?

Dim lastRow As Long
lastRow = Sheet1.Range("A" & Rows.Count).End(xlUp).Row
MsgBox lastRow

위의 VBA를 사용하여 행 수를 확인할 수 있습니다.하지만 주어진 엑셀 파일의 열 수를 어떻게 찾나요?

예제 코드는 현재 열의 마지막 공백이 아닌 셀의 행 번호를 가져오며 다음과 같이 다시 작성할 수 있습니다.

Dim lastRow As Long
lastRow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row
MsgBox lastRow

그러면 현재 행의 마지막 공백이 아닌 셀의 열 번호를 가져오는 데 필요한 코드가 다음과 같은 것을 쉽게 알 수 있습니다.

Dim lastColumn As Long
lastColumn = Sheet1.Cells(1, Columns.Count).End(xlToLeft).Column
MsgBox lastColumn

이것도 도움이 될 수 있습니다.

With Sheet1.UsedRange
    MsgBox .Rows.Count & " rows and " & .Columns.Count & " columns"
End With

단, A열 및/또는 1행이 공백일 경우 위의 다른 예시와 같은 결과가 되지 않는다는 점에 유의하십시오.자세한 내용은 다음 웹 사이트를 참조해 주세요.UsedRange소유물.

Jean-Franchois Corbett의 대답은 완벽하다.자세한 설명을 위해 몇 가지 제한사항을 추가하고자 합니다.UsedRange.Columns.Count또는UsedRange.Rows.Count.
문제는 행/열을 삭제할 때(적어도 워크북을 다시 열 때까지) Used Range가 항상 업데이트되지 않는다는 것입니다.

당신이 잊어버렸을 수도 있어요.sheet1그 전 어딘가에서columns.count또는, 이 값을 카운트 합니다.activesheet컬럼이 아닌sheet1

그리고 xltorlight가 아니라 xltoleft로 해야 하지 않을까요?(여기서 많이 늦었지만 오른쪽은 왼쪽에서 알 것 같아요) 확인했는데 xltoleft라고 써주세요.

lastColumn = Sheet1.Cells(1, sheet1.Columns.Count).End(xlToleft).Column

답은 다음과 같습니다.

numCols = objSheet.UsedRange.Columns.count

UsedRange 속성 문서

결과는 다음 코드에서 열 번호(8,9 등)로 표시됩니다.

Dim lastColumn As Long
lastColumn = Sheet1.Cells(1, Columns.Count).End(xlToLeft).Column
MsgBox lastColumn

결과는 다음 코드(H,I 등)로 표시됩니다.

Dim lastColumn As Long
lastColumn = Sheet1.Cells(1, Columns.Count).End(xlToLeft).Column
MsgBox Split(Sheet1.Cells(1, lastColumn).Address, "$")(1)

언급URL : https://stackoverflow.com/questions/6897347/finding-the-number-of-non-blank-columns-in-an-excel-sheet-using-vba

반응형