문제

나는 Excel 2007의 UDF를 작성하고 있는데 테이블을 전달하고 UDF에서 그 테이블의 일부를 참조하고 싶습니다. 예를 들어 "Stock"이라는 내 테이블이 다음과 같이 보일 수 있습니다.

재고의 이름 비용 항목

테디 베어 £ 10 10

롤리팝 20p 1000

재고가 남은 모든 품목의 총 비용을 계산하려는 UDF가 있습니다 (실제 예는 매우 복잡한 공식 없이는 실제로 수행 할 수없는 훨씬 더 복잡합니다).

이상적으로 UDF의 구문은

TOTALPRICE(Stock)

내가 해결할 수있는 것은 UDF가 서명을 가질 것임을 의미합니다.

Function TOTALPRICE(table As Range) As Variant

내가 문제가있는 것은 테이블의 열을 참조하고 반복하는 방법입니다. 이상적으로는 열 헤더를 참조 할 수 있기를 원합니다 (테이블 [비용]과 같은 것).

도움이 되었습니까?

해결책

이것은 매우 기본적이지만 (말장난 의도는 없음) 설명을 할 것입니다. 더 큰 테이블의 경우 후드 아래에서 느리게 될 수 있습니다. 매크로 기능과 워크 시트 사이에서 앞뒤로 진행되며 이러한 종류의 활동이 더해집니다.

그것은 당신이 하나의 줄과 이름의 이름을 하나의 열을 가지고 있다고 가정합니다 (따라서 2부터 시작하는 루프 변수).

필요한 모든 것들이 필요할 수 있습니다. 우리는 이것에 대해 다른 질문이나 다른 라운드를 위해 저장할 수 있습니다.

함수는 "변형"을 반환합니다. BTW ...

Public Function TotalPrice(table As Range) As Variant

Dim row As Long, col As Long
Dim total As Double

    For row = 2 To table.Rows.Count
        For col = 2 To table.Columns.Count
            TotalPrice = TotalPrice + table.Cells(row, col) * table.Cells(row, col + 1)
        Next
    Next

End Function

다른 팁

참고 : Excel 2007이없고 웹에서 MSDN DOC를 사용하여 이것을 쓰려고합니다.
범위에 ListColumns 컬렉션이있는 것 같습니다

따라서 구문은 Table.ListColumns ( "Cost") 일 수 있습니다.
이것이 작동합니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top