我有一个数据透视表,我想创建一个宏,允许用户键入所需的数字格式作为PivotFields列表。然后,宏将读取此“ PivotField数字格式范围”,并将现有的数字格式更改为用户为用户指定了数字格式的每个数据透视字段输入的用户数字格式。
下面的代码创建一个新的工作表,该工作表列出了每个PivotField和每个现有的数字格式。它的第三列为空白,称为NewFormat,用户可以在其中输入所需的数字格式。
Public Sub CreatePivotFormatterTab()
Set pt = Sheets("Workings").PivotTables(1)
Set newSheet = Sheets.Add
newSheet.Name = "PivotFormatter"
newSheet.Cells(1,1).Value = "Header"
newSheet.Cells(1,2) = "Format"
newSheet.Cells(1,3) = "NewFormat"
i = 1
For Each pf In pt.PivotFields
On Error Resume Next
i = i + 1
newSheet.Cells(i,1).Value = pf.Name
newSheet.Cells(i,2).Value = pf.NumberFormat
Next
End Sub
用户输入要更改的特定NumberFormats后,如何获取数据透视表以读取用户输入并相应地更改NumberFormat(如果未提供用户输入,则默认为现有NumberFormat)?
我考虑过从PivotFormatter选项卡创建数组:
Public Sub CreatePivotFormatArray()
'Create Range
Set Headers = Range("A1:C1")
Set PFR = _
Range(Headers.Offset(1),Headers.Offset(1).End(xlDown))
'Read the Range into an Array
PFA = PFR.Value
End Sub
但是我不知道如何将每个数据透视字段的NumberFormats更改为用户输入的数字格式。