피벗 테이블의 각 피벗 필드를 반복하는 코드를 작성한 다음 소스 이름을 기반으로 "사용자 정의 이름"을 변경합니다. 나는 다음과 같은 코드를받을 열 머리글 변경 기록 할 때 :VBA를 사용하여 피벗 테이블의 소스 이름을 기반으로 열 제목을 변경하십시오.
Range("J5").Select
ActiveSheet.PivotTables("PivotTable1").PivotFields("Man-Hours Oct-16").Caption _
= "Man-Hours Nov-16"
문제는
, 사용자 정의 이름은 달에 달 변화를, 그래서 나는 소스 이름을 기준으로 피벗 필드 없습니다 참조 할 자막. "런타임 오류 :
Dim CurrentDate As Date
Dim CurrentMonth As String
Dim CurrentYear As String
Dim pf as PivotField
CurrentDate = Range("CurrentDate")
CurrentMonth = Format(CurrentDate, "MMM")
CurrentYear = Format(CurrentDate, "YY")
For Each pf In PivotSheet.PivotTables("PivotTable1").PivotFields
'Total Forecast
If pf.SourceName = "Man-Hours 0" Then
pf.Caption = "Man-Hours " & CurrentMonth & "-" & CurrentYear
ElseIf pf = "Cost ($$) 0" Then
pf.Caption = "Cost ($$) " & CurrentMonth & "-" & CurrentYear
End If
Next pf
위의 코드는 오류가 수신 : 나는 그러나, 나는 그것이 캡션을 수정하려고 시도 오류 메시지가 성공적으로 각 피벗 필드를 통해 루프 소스를 식별하는 코드를 작성 '5': 잘못된 프로 시저 호출 또는 인수 "pf.Caption
줄에.
나는 또한뿐만 아니라 pf.LabelRange
를 사용하려고하고 난 오류가 나타납니다 : "런타임 오류 '1004'다음 PivotField 클래스의 LabelRange 속성을 가져올 수 없습니다"
내가하려고 주위를 검색 한을 솔루션을 찾으십시오. 피벗 테이블을 사용하여 코드를 많이 작성하지 않아 피벗 항목을 사용해야하는지 잘 모르겠습니다. 열 머리글을 변경 한 모든 코드는 이전 캡션 이름을 기반으로합니다.