vba - 创建数据透视表以包含 xlSum 数字格式的小数
问题描述
我正在使用一些 vba 代码从头开始创建数据透视表。它工作得几乎完美,所以我不打算彻底检查代码。
只有一个问题......数据中的数字包括小数,但是一旦我创建了数据透视表,表中的数字不包括小数位,包括总计。
我需要表格来显示原始数据中的小数,尤其是在总计字段中。搜索该站点后,我无法在数据透视表 VBA 上找到任何细节级别的信息。这是我目前正在使用的 VBA。
Sub Pivot_Table()
Dim PSheet As Worksheet
Dim DSheet As Worksheet
Dim PCache As PivotCache
Dim PTable As PivotTable
Dim PRange As Range
Dim LastRow As Long
Dim LastCol As Long
'Insert a New Blank Worksheet
On Error Resume Next
Application.DisplayAlerts = False
Worksheets("Cash AR195").Delete
Sheets.Add Before:=ActiveSheet
ActiveSheet.Name = "Cash AR195"
Application.DisplayAlerts = True
Set PSheet = Worksheets("Cash AR195")
Set DSheet = Worksheets("AR195 Detail")
'Define Data Range
LastRow = DSheet.Cells(Rows.Count, 1).End(xlUp).Row
LastCol = DSheet.Cells(1, Columns.Count).End(xlToLeft).Column
Set PRange = DSheet.Cells(1, 1).Resize(LastRow, LastCol)
'Define Pivot Cache
Set PCache = ActiveWorkbook.PivotCaches.Create _
(SourceType:=xlDatabase, SourceData:=PRange). _
CreatePivotTable(TableDestination:=PSheet.Cells(2, 2), _
TableName:="AR195Totals")
'Insert Blank Pivot Table
Set PTable = PCache.CreatePivotTable _
(TableDestination:=PSheet.Cells(1, 1), TableName:="AR195Totals")
'Insert Row Fields
With ActiveSheet.PivotTables("AR195Totals").PivotFields("Batch #")
.Orientation = xlRowField
.Position = 1
.Name = "Batch # "
End With
'Insert Data Field
With ActiveSheet.PivotTables("AR195Totals").PivotFields("Amount")
.Orientation = xlDataField
.Position = 1
.Function = xlSum
.NumberFormat = "#,##0"
.Name = "Amount "
End With
'Format Pivot Table
ActiveSheet.PivotTables("AR195Totals").ShowTableStyleRowStripes = True
ActiveSheet.PivotTables("AR195Totals").TableStyle2 = "PivotStyleMedium9"
End Sub
在我运行 VBA 后,我还将包含一些数据字段的图像和数据透视表。
这可能看起来很小,但我绝对需要包括小数。它可能是我错过的非常简单的事情,但我正在努力获得正确的数字格式以在最终产品(数据透视表)中包含小数点。
提前感谢您的任何帮助,非常感谢!
解决方案
好吧,我不敢相信我错过了这个......但我在发布后不久就解决了我自己的问题。
我刚刚在字段中添加了小数点.NumberFormat =
。这里是更新......
'Insert Data Field
With ActiveSheet.PivotTables("AR195Totals").PivotFields("Amount")
.Orientation = xlDataField
.Position = 1
.Function = xlSum
.NumberFormat = "#,###.##"
.Name = "Amount "
End With
我很敬畏我之前没有注意到这一点……无论如何,谢谢大家!
推荐阅读
- web-scraping - 如何找出表中的原始数据在哪里?
- unity3d - Luasocket收到大量数据包后意外关闭
- paypal - 将附加参数传递给贝宝按钮 url
- javascript - 为什么箭头函数作为 JavaScript 对象属性没有得到 this 的引用?
- java - 如何更改对象字段的呈现方式,同时仍保留所述字段的原始值?
- dart-pdf - pdfImageFromImageProvider 新实现
- python - 带有 URL 的 YouTube 视频下载器
- angular - Angular上传简单文件
- swift - Swift UI - 使用导航视图和导航链接 - 在激活导航链接之前创建视图模型
- visual-studio-code - 这些 vscode 文本结构是什么以及如何执行它们:kb(workbench.what.is.this.for.how.do.i.execute.it?)