VBA에서 열 계산

Iqra Hasnain 2024년2월15일
  1. VBA에서 열 계산
  2. VBA에서 범위의 열 개수
  3. VBA에서 Range().End 메서드 사용
  4. VBA에서 Cells.Find() 메서드 사용
VBA에서 열 계산

이 기사에서는 Excel에서 VBA를 사용하여 데이터가 있는 열을 쉽게 계산하는 두 가지 방법에 대해 설명합니다.

VBA에서 열 계산

몇 개의 열이 있는 작은 데이터 테이블이 있으면 쉽게 셀 수 있지만 큰 데이터 테이블에서는 오류 없이 모든 열을 계산하기가 매우 어렵습니다. 그 외에도 일부 열에는 데이터가 포함될 수 있지만 일부 열은 완전히 비어 있을 수 있습니다.

따라서 데이터 테이블이 큰 경우 데이터가 있는 모든 열을 계산하는 것은 매우 어렵습니다. 이제 작업할 샘플 데이터가 포함된 시트를 만들어 보겠습니다.

VBA에서 열을 계산하는 시트 만들기

다음 데이터 테이블에서 세 개의 열을 볼 수 있습니다. 단일 Excel 워크시트에서 사용된 열 수를 제어하기 위해 VBA 코드를 사용합니다.

먼저 ALT + F11 키를 눌러 VBA 편집기를 엽니다. 그런 다음 삽입 > 모듈에서 새 모듈을 만듭니다.

VBA에서 열을 계산하는 새 매크로 만들기

그런 다음 usedColumns()라는 새 하위 항목을 만듭니다. 새 하위 내부에서 with 루프를 사용하여 UsedRange 메서드를 사용하여 사용된 범위를 가져옵니다.

그런 다음 columns의 count 방법을 사용하여 사용된 열의 수를 출력합니다.

예제 코드:

# VBA
Sub usedColumns()
With Sheet1.UsedRange
MsgBox "The Used Columns are: "& .Columns.Count
End With
End Sub

매크로를 저장하고 F5를 누르거나 실행을 클릭하여 실행하십시오. 매크로 대화 상자가 아래와 같이 나타납니다.

출력:

With 루프를 사용하여 VBA의 열 계산

VBA에서 범위의 열 개수

다음 VBA 코드는 지정된 범위의 데이터가 있는 모든 열을 계산합니다.

새로운 하위 ColumnsInRange()를 생성해 보겠습니다. 이 하위에서 range 함수를 사용하여 해당 범위의 열 수를 선택하고 계산합니다.

예제 코드:

# VBA
Sub ColumnsInRange()
Dim newRange As Worksheet
Set newRange = Worksheets("Sheet1")
MsgBox "The Used Columns are: " & newRange.Range("A15:D15").Columns.Count
End Sub

출력:

주어진 범위의 데이터가 있는 모든 열을 셉니다

VBA에서 Range().End 메서드 사용

Range().End 메서드를 사용하여 해당 범위에서 사용된 마지막 열을 가져올 수 있습니다.

새 하위 findLastColumn()을 만들고 해당 하위 내부에서 범위의 End 메서드를 사용하여 시트의 오른쪽에 사용된 마지막 열을 찾습니다.

# VBA

Sub findLastColumn()
Dim newRange As Integer
newRange = Range("A2").End(xlToRight).Column
MsgBox newRange
End Sub

출력:

End 메서드를 사용하여 시트 오른쪽으로 사용되는 VBA 마지막 열의 열 개수

위의 그림과 같이 팝업 대화 상자에서 마지막 열 번호를 얻습니다.

VBA에서 Cells.Find() 메서드 사용

Range.Find 메서드를 사용하여 VBA 코드를 사용하여 시트에서 마지막으로 사용된 열을 가져올 수도 있습니다.

다음 코드를 확인하십시오. LastColumnByFind() 하위에서 Cells.Find() 메서드를 사용하여 마지막으로 사용된 열을 찾습니다.

예제 코드:

# VBA
Sub LastColumnByFind()
Dim newRange As Long
    newRange = Cells.Find(What:="*", _
                    After:=Range("A1"), _
                    LookAt:=xlPart, _
                    LookIn:=xlFormulas, _
                    SearchOrder:=xlByColumns, _
                    SearchDirection:=xlPrevious, _
                    MatchCase:=False).Column
    MsgBox "Last Used Column Number by Find Method: " & newRange
End Sub

출력:

Find 메서드를 사용하여 VBA의 열 개수