Excel 透视表数据范围的VBA数字格式无效
我的数字看起来仍然像2615233.698,下面的代码将数据透视表的范围格式化为您想要的格式 您可以直接访问数据透视表的范围并使用以下命令修改其格式,而不是使用RangeB43:AJ5000.Select和更高版本的选择:Excel 透视表数据范围的VBA数字格式无效,excel,vba,Excel,Vba,我的数字看起来仍然像2615233.698,下面的代码将数据透视表的范围格式化为您想要的格式 您可以直接访问数据透视表的范围并使用以下命令修改其格式,而不是使用RangeB43:AJ5000.Select和更高版本的选择: Sub Cost() Dim CurrentPivot As String On Error GoTo OnError Expand CurrentPivot = ActiveSheet.Name ActiveSheet.Pi
Sub Cost()
Dim CurrentPivot As String
On Error GoTo OnError
Expand
CurrentPivot = ActiveSheet.Name
ActiveSheet.PivotTables(CurrentPivot).PivotFields("Sum of Hours"). _
Orientation = xlHidden
ActiveSheet.PivotTables(CurrentPivot).AddDataField ActiveSheet.PivotTables( _
CurrentPivot).PivotFields("Cost"), "Sum of Cost", xlSum
FormatProj
Zero
Range("B43:AJ5000").Select
Selection.NumberFormat = "$#,##0.00;[Red]$#,##0.00"
OnError:
MsgBox ("Viewing data in $Cost")
ActiveWorkbook.ShowPivotTableFieldList = False
Range("B44").Select
End Sub
代码
下面的代码将数据透视表的范围格式化为所需的格式 您可以直接访问数据透视表的范围并使用以下命令修改其格式,而不是使用RangeB43:AJ5000.Select和更高版本的选择:
Sub Cost()
Dim CurrentPivot As String
On Error GoTo OnError
Expand
CurrentPivot = ActiveSheet.Name
ActiveSheet.PivotTables(CurrentPivot).PivotFields("Sum of Hours"). _
Orientation = xlHidden
ActiveSheet.PivotTables(CurrentPivot).AddDataField ActiveSheet.PivotTables( _
CurrentPivot).PivotFields("Cost"), "Sum of Cost", xlSum
FormatProj
Zero
Range("B43:AJ5000").Select
Selection.NumberFormat = "$#,##0.00;[Red]$#,##0.00"
OnError:
MsgBox ("Viewing data in $Cost")
ActiveWorkbook.ShowPivotTableFieldList = False
Range("B44").Select
End Sub
代码
请先阅读,然后再回答你的问题,以改进它。至少包括解释你的代码实际上做了什么,以及你期望它能达到你想要的结果。仅仅发布代码而不询问任何问题是非常糟糕的做法。范围b43:AJ5000应该是数据透视表的范围吗?我同意你的看法。我应该多解释一下。此代码仅显示透视表中的美元成本。是的,这就是数据透视表的流行之处。请先阅读,然后再回答您的问题,以便改进。至少包括解释你的代码实际上做了什么,以及你期望它能达到你想要的结果。仅仅发布代码而不询问任何问题是非常糟糕的做法。范围b43:AJ5000应该是数据透视表的范围吗?我同意你的看法。我应该多解释一下。此代码仅显示透视表中的美元成本。是的,这就是数据透视表的流行之处。提前谢谢,谢谢!这太完美了。FormatProj和Zero是用于格式化数字/颜色等的独立代码@user3860954不客气,请单击我的答案旁边的灰色复选标记将其标记为答案它将变为绿色,您将获得+2分谢谢!这太完美了。FormatProj和Zero是用于设置数字/颜色等格式的独立代码@user3860954不客气,请单击我的答案旁边的灰色复选标记将其标记为答案它将变为绿色,您将获得+2分
Option Explicit
Sub Cost()
Dim CurrentPivot As String
Dim PvtTbl As PivotTable
On Error GoTo OnError
'Expand ' <-- not sure what does this Sub-routine actually does
CurrentPivot = ActiveSheet.Name
' set the Pivot-Table object
Set PvtTbl = ActiveSheet.PivotTables(CurrentPivot)
With PvtTbl
.PivotFields("Sum of Hours").Orientation = xlHidden
.AddDataField .PivotFields("Cost"), "Sum of Cost", xlSum
'FormatProj ' <-- not sure what does this Sub-routine actually does
'Zero ' <-- not sure what does this Sub-routine actually does
.TableRange2.NumberFormat = "$#,##0.00;[Red]$#,##0.00"
End With
OnError:
MsgBox "Viewing data in $Cost"
ActiveWorkbook.ShowPivotTableFieldList = False
Range("B44").Select
End Sub