빈 워크 시트가 있고 A1 : F1 범위에 “병합 및 가운데”형식이 적용되어 있다고 가정합니다. 열 머리글을 클릭하여 B 열을 선택하면 Excel에서 B 열을 신중하게 선택하고 B2 셀을 활성 셀로 만듭니다. 이 동작은 Excel 2000 또는 Excel 2002에서 수정되었습니다. 이전 버전의 Excel에서는 병합 된 셀 (A1 : F1)을 얻습니다.

선택에 포함됩니다.

분명히 VBA는 사용자 인터페이스의 동작보다 약간 뒤처져 있습니다. 전체 열 B를 선택하면 A부터 F까지의 모든 열이 선택되기 때문에 :

Sub TestMacro1()

Range("B3").EntireColumn.Select End Sub

이 동작을 피할 방법이없는 것 같습니다. EntireColumn 메서드를 제거하고 단순히 B 열을 선택하더라도 A부터 F까지의 모든 열을 얻을 수 있습니다.

Sub TestMacro2()

Range("B:B").Select End Sub

해당 열에 대해 작업을 수행 할 준비가 된 열을 선택하지 않고 직접 작업을 수행하는 것이 더 나은 프로그래밍 접근 방식입니다. 예를 들어 B 열의 모든 셀을 굵게 만들고 싶다고 가정 해 보겠습니다. 다음과 같이 할 수 있습니다.

Sub TestMacro3()

Range("B3").EntireColumn.Font.Bold = True End Sub

이는 B 열의 셀에만 영향을 미치고 A 또는 C에서 F까지의 셀에는 영향을주지 않습니다. 마찬가지로 원하는 열의 셀을 처리하는 반복적 인 접근 방식을 사용할 수 있습니다.

Sub TestMacro4()

Dim rCell As Range     Dim X As Long

X = 1     For Each rCell In Range("B:B")

rCell.Value = X         X = X + 1     Next End Sub

이것은 B 열의 각 셀에 값을 채우고 B 열의 셀을 포함하는 병합을 편리하게 무시합니다.

병합 된 셀로 인해 추가 된 열없이 전체 열을 선택할 수 있어야하는 경우 MergeCells 속성을 사용하여 병합 된 셀을 확인하고 싶을 수 있습니다. VBA 온라인 도움말에 따르면 다음은 선택 항목에서 병합 된 셀을 감지 한 다음 매크로에서 덤프해야합니다.

Sub TestMacro5()

Range("B3").EntireColumn.Select     If Selection.MergeCells Then         Exit Sub     End If ' ' Perform rest of macro ' End Sub

불행히도 테스트 결과이 코드가 작동하지 않는 것으로 나타났습니다. MergeCells 속성은 선택 항목에 병합 된 셀이 몇 개만 포함 된 경우가 아니라 전체 선택 항목이 병합 된 셀로 구성된 경우에만 True를 반환합니다. 즉, 병합 된 셀이 다음과 같이 의도 한 선택을 수정했는지 확인하는 다른 방법이 있습니다.

Sub TestMacro6()

Range("B3").EntireColumn.Select     If Selection.Columns.Count > 1 Then         Exit Sub     End If ' ' Perform rest of macro ' End Sub

이 접근 방식은 선택 항목의 열 수를 검사 한 다음 Excel에서 둘 이상의 열이 있다고보고하면 덤프합니다.

_ 참고 : _

이 페이지 (또는 ExcelTips 사이트의 다른 페이지)에 설명 된 매크로를 사용하는 방법을 알고 싶으면 유용한 정보가 포함 된 특별 페이지를 준비했습니다.

link : / excelribbon-ExcelTipsMacros [새 브라우저 탭에서 특별 페이지를 열려면 여기를 클릭하세요].

_ExcelTips_는 비용 효율적인 Microsoft Excel 교육을위한 소스입니다.

이 팁 (12218)은 Microsoft Excel 2007, 2010, 2013 및 2016에 적용됩니다.

여기에서 Excel의 이전 메뉴 인터페이스에 대한이 팁의 버전을 찾을 수 있습니다.

link : / excel-Selecting_Columns_in_VBA_when_Cells_are_Merged [셀이 병합 될 때 VBA에서 열 선택].