数据透视表字段(度量)从数据透视表中删除后会失去其格式。将它们添加回数据透视表后,您必须重新设置其格式。我正在使用Excel 2019,PowerPivot和Excel内部的数据模型。
我需要为+-0
包含不同颜色的格式。格式如下:[Color10]0,00%;[Red]-0,00%;[Black]-
(Color10是Excel中用于数字格式设置的正确编码颜色)
我正在尝试建立一个宏来执行。我录制了一个宏。运行宏时,它会“发明”自己的格式,而不会应用我给它做的格式。
因此,运行代码后,应用的数字格式为[Color10]#.000%;[Red]-#.000%;[Black]-
而不是[Color10]0,00%;[Red]-0,00%;[Black]-
。请注意,当我手动应用所需的格式时,它保持不变。
问题似乎与数据透视表或powerpivot本身无关。尝试执行
时会出现相同的问题ActiveSheet.Range("F1").NumberFormat = "[Color10]0,00%;[Red]-0,00%;[Black]-"
它有效,如果我手动将所需的格式应用于单元格,然后将那个单元格中的格式应用于透视表字段,如下所示:
.PivotFields("[Measures].[M To Market vs IMS Volume %]").NumberFormat = ActiveSheet.Range("F1").NumberFormat
我想念什么?
我尝试过的其他非宏选项:
我尝试过的宏选项:
即使在工作表上也要进行数据透视表更新-Excel经常崩溃(如果接下来我将继续错误恢复,它将调用该过程,例如30次;否则将引发错误并崩溃。)
我删除了“ ghost”自定义格式,然后再次尝试,Excel似乎重新创建了我不想要的自定义格式。
我已经在VBA字符串中搜索了%
符号的潜在转义字符,但是除了双引号本身没有其他特别之处。
Sub set_pivottable_number_formatting()
With ActiveSheet.PivotTables(1)
MsgBox .PivotFields("[Measures].[M To Market vs IMS Volume %]").NumberFormat
.PivotFields("[Measures].[M To Market vs IMS Volume %]").NumberFormat = "[Color10]0,00%;[Red]-0,00%;[Black]-"
MsgBox .PivotFields("[Measures].[M To Market vs IMS Volume %]").NumberFormat
End With
End Sub