Sub Main
Dim objPivot As PivotTable
Dim objItem As ISpssItem
'Сводная таблица должна быть активирована
Dim bolFoundOutput As Boolean, bolFoundPivot As Boolean
GetFirstSelectedPivot objPivot, objItem, bolFoundOutput, bolFoundPivot
If Not (bolFoundOutput And bolFoundPivot) Then
Exit Sub
End If
Call UndoPercent(objPivot,"#.#")
objItem.Deactivate
End Sub
Sub UndoPercent(objPivotTable As Object, strNewFormat As String)
'Цель: Заменить процентный формат в ячейках таблиц.
'Условия: Сводная таблица, которую необходимо изменить, должна быть активирована,
'а параметр strNewFormat должен содержать строку допустимого формата.
'Результат: Форматы ячеек в таблице меняются с процентов на strNewFormat
'Входящие: Объект PivotTable (уже активированный),
'новый числовой формат (strNewFormat)
'Си. раздел справки по SPSS Objects
' "String Description of Numeric Formats" (строчные описания числовых форматов)
'или поэскспериментируйте с GetFormatString.
'Размещено: John Bauer в SPSSX-L 23 января 2001 г.
Dim strFormat As String
Dim lngRow As Long, lngCol As Long
Dim objDataCells As ISpssDataCells
Set objDataCells = objPivotTable.DataCellArray
With objDataCells
For lngRow = 0 To .NumRows - 1
For lngCol = 0 To .NumColumns - 1
If Not IsNull (.ValueAt (lngRow, lngCol)) Then
strFormat = .NumericFormatAt (lngRow, lngCol)
If strFormat = "##.#%" Then
.NumericFormatAt (lngRow, lngCol) = strNewFormat
'конвертируем проценты в доли (делим на 100):
'если не нужно, закомментируйте эту строку
.ValueAt(lngRow, lngCol) = CStr$(.ValueAt(lngRow, lngCol)/100)
End If
End If
Next
Next
End With
objPivotTable.Autofit
End Sub