vba의 셀 주소에서 Excel의 병합된 셀 값을 가져옵니다.
vBA에서 "$B$4:$B$11"과 같은 범위 주소를 가진 Excel의 병합된 셀 값을 얻는 방법
Excel에서 Marge 셀을 사용하는 것이 정말 권장되지 않더라도(예를 들어 필요한 경우 사용), 값이 "포함"된 셀은 왼쪽 상단에 있는 셀입니다.
따라서 범위 내에서 병합된 셀의 값을 얻을 수 있습니다.B4:B11
여러 가지 방법으로요.
Range("B4").Value
Range("B4:B11").Cells(1).Value
Range("B4:B11").Cells(1,1).Value
또한 다른 모든 셀에는 값이 없습니다.디버깅 중에 값이 다음과 같은 것을 알 수 있습니다.empty
.
또, 주의해 주세요.Range("B4:B11").Value
동작하지 않는다(실행 에러 번호 13을 표시하려고 하면 표시된다).Debug.Print
이는 배열을 반환하기 때문입니다.
Josh Brown은 (코멘트를 통해) 내가 생각하는 가장 좋은 대답을 했다.
병합된 영역의 경계를 모를 경우 다음과 같은 값을 얻을 수 있습니다.
Range("B6").MergeArea.Cells(1,1).Value
이 방법은 예를 들어 알 수 없는 범위의 셀이 Marge된 파일을 루프하는 경우 VBA에서 유용하기 때문에 이 방법을 사용하면 훨씬 일반적입니다.고마워요, 조쉬!
이 작업은 다음 두 단계로 수행할 수 있습니다.
먼저 병합된 셀의 범위를 지정하고 병합된 셀을 강조 표시한 다음 리본 막대로 이동합니다.Formulas Tab --> Define Name;
이름에 공백이 없어야 합니다.예:defined_Name
출력/결과를 보고 싶은 셀로 이동합니다.이 셀에 다음과 같이 입력합니다.=defined_Name
.
완료되었으므로 Enter 키를 누릅니다.
(2016년 11월)
나는 이것이 누군가에게 도움이 되기를 바란다.
병합된 셀에서 삭제를 누르면 target.delect.count = 병합된 셀의 수라는 것을 발견했습니다.
한편, 같은 셀에서 값을 변경하면 target.target.count = 1
이로 인해 선택한 셀 수를 테스트하여 worksheet_change 코드에서 여러 선택을 건너뛰고 있었기 때문에 문제가 발생했습니다.
언급URL : https://stackoverflow.com/questions/9407474/get-value-of-a-merged-cell-of-an-excel-from-its-cell-address-in-vba
'programing' 카테고리의 다른 글
항목 사전을 다른 사전에 추가하려면 어떻게 해야 합니까? (0) | 2023.04.15 |
---|---|
list append() 메서드가 새 목록을 반환하도록 허용하는 방법 (0) | 2023.04.15 |
WPF에서 AppBar 도킹(WinAmp와 같은 화면 가장자리)은 어떻게 합니까? (0) | 2023.04.15 |
C#에서 키 누르기 이벤트를 프로그래밍 방식으로 생성하려면 어떻게 해야 합니까? (0) | 2023.04.15 |
UIView 스크린샷을 찍는 방법 (0) | 2023.04.15 |