Заменить процентный формат
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | 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 |