Создание сводной таблицы для включения десятичных знаков в числовом формате xlSum - PullRequest
0 голосов
/ 06 июня 2018

Я использую некоторый код 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.

The Original Data

Pivot Table Data

Это может показаться незначительным, но мне абсолютно необходимо включить десятичную дробь.Возможно, я упустил что-то очень простое, но я изо всех сил пытаюсь найти правильный числовой формат, чтобы включить десятичную дробь в конечный продукт (сводную таблицу).

Спасибо за любую помощь заранее, я очень благодарен!

1 Ответ

0 голосов
/ 06 июня 2018

Хорошо, я не могу поверить, что пропустил это ... но я решил свой собственный вопрос вскоре после публикации.

Я просто добавил десятичное число в поле .NumberFormat =.Вот обновление ....

'Insert Data Field
With ActiveSheet.PivotTables("AR195Totals").PivotFields("Amount")
.Orientation = xlDataField
.Position = 1
.Function = xlSum
.NumberFormat = "#,###.##"
.Name = "Amount "
End With

Я в восторге, я не заметил этого раньше ... в любом случае, спасибо всем!

...