vba의 셀 주소에서 Excel의 병합된 셀 값을 가져옵니다.
vBA에서 "$B$4:$B$11"과 같은 범위 주소를 가진 Excel의 병합된 셀 값을 얻는 방법
Excel에서 Marge 셀을 사용하는 것이 정말 권장되지 않더라도(예를 들어 필요한 경우 사용), 값이 "포함"된 셀은 왼쪽 상단에 있는 셀입니다.
따라서 범위 내에서 병합된 셀의 값을 얻을 수 있습니다.B4:B11여러 가지 방법으로요.
Range("B4").ValueRange("B4:B11").Cells(1).ValueRange("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 |