Excel VBA - 동적 배열 수식을 추가하는 방법
VBA를 통해 워크시트에 다음과 같은 공식을 추가합니다.
=UNIQUE(IF(TableA[ColumnA]=A1,TableA[ColumnB],""))
이는 Excel의 새로운 SPLE 기능을 활용하여 열 A의 관련 값이 셀 A의 값과 일치하는 열 B의 값 목록을 제공합니다.또한 여러 개의 빈 결과(""")를 제거하기 위해 고유 기능을 적용하고 있습니다.
수식을 Excel에 수동으로 입력하면 완벽하게 작동하지만, VBA를 사용하여 수식을 추가할 때 Excel은 수식에 @ 기호를 추가하여 #VALUE!를 표시합니다.
공식을 추가하는 데 사용되는 VBA 라인은 다음과 같습니다.
=Cells(x,y).Formula = "=UNIQUE(IF(TableA[ColumnA]=A1,TableA[ColumnB],""""))"
Excel의 결과 출력은 다음과 같습니다.
=@UNIQUE(IF(TableA[@[ColumnA]]=A1,TableA[ColumnB],""))
무슨 일이 일어나고 있고, 내가 놓친 것은 무엇입니까?
잘 부탁드립니다!
좋은 질문입니다. 제가 찾아봤는데요...
간단히 말해서:
사용하다=Cells(x,y).Formula2
대신에=Cells(x,y).Formula
설명:
그@
를 나타내는 것을 암시적 교차 연산자라고 합니다.MS 문서에서:
암시적 교차 논리는 많은 값을 단일 값으로 줄입니다.셀은 단일 값만 포함할 수 있으므로 Excel은 수식이 단일 값을 반환하도록 강제하기 위해 이 작업을 수행했습니다.공식이 단일 값을 반환하는 경우 암시적 교차는 기술적으로 백그라운드에서 수행되는 경우에도 아무런 작업이 수행되지 않았습니다.
그런데 왜 그것이 당신의 새로운 엑셀 O365에 나타나나요?음.Range.Formula
IIE(암묵적 교차)를 사용하여 다음을 추가합니다.@
기본적으로 동적 배열 기능을 실행 취소합니다.UNIQUE
는 새로운 동적 배열 함수입니다.따라서 코드로 작성하려면 속성을 사용해야 합니다(또는 사용할 경우).R1C1
표기법).이러한 속성은 AE(array evaluation)를 사용하며 현재 기본값입니다.
여기 그 주제에 대한 MS의 유익한 문서가 있는데, 그것은 사이의 차이를 설명합니다.
Formula
그리고.Formula2
좀더 상세하게암시적 교차로 연산자에 대해 더 알고 싶다면 다음을 살펴보십시오.
저는 앞서 암묵적인 교집합과 관련된 또 다른 질문에 흥미를 느낀다면 실제로 어떻게 작동하는지에 대한 예를 들어 답했습니다.
언급URL : https://stackoverflow.com/questions/61138029/excel-vba-how-to-add-dynamic-array-formula
'programing' 카테고리의 다른 글
NSA sert의 요점이 뭐죠? (0) | 2023.06.21 |
---|---|
WooCommercommercommerce:고객 계정 페이지에 사용자 정의 템플릿 추가 (0) | 2023.06.21 |
추적되지 않은 파일에 gitdiff를 사용할 수 있습니까? (0) | 2023.06.21 |
SQL에서 빈 GUID 확인 (0) | 2023.06.21 |
Mac OS X에서 libusb를 설정하는 방법은 무엇입니까? (0) | 2023.06.21 |