Заменить «научный» (##.#E±##) формат
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 52 53 | 'Процедура UndoSciNotation (стандартная процедура, которая присутствует в файле Global.sbs под именем UndoScientificNotation). 'Назначение: заменяет "научный формат" (типа 1.23E+06) в ячейкам мобильных таблиц. 'Условия: мобильная таблица, в которую следует внести изменения, активирована, переменная strNewFormat содержит новый корректный формат. 'Действия: изменяет формат ячеек с "научного" на тот, который указан в переменной strNewFormat. 'Входные: активированная мобильная таблица (объектная переменная) и новый числовой формат в строковой переменной strNewFormat. 'Выходные: изменённая мобильная таблица. 'См. справку по объектам SPSS, тема "String Description of Numeric Formats" (строковое представление числовых форматов), 'либо непосредственно поэкспериментируйте со свойством NumericFormatAt. 'Перевод: А. Балабанов, 14.01.2009. 'Проверено: SPSS 15.0.0. 'Размещение: http://www.spsstools.ru/Scripts/PivotTables/UndoSciNotation.txt (.sbs). Sub Main 'добавлено перев. для демонстрации работы. Модифицирует первую выделенную таблицу - А.Б. Dim objSelectedPivot As Object Dim objItem As ISpssItem Dim bolFoundOutput As Boolean Dim bolFoundPivot As Boolean Call GetFirstSelectedPivot(objSelectedPivot, objItem, bolFoundOutput, bolFoundPivot) If bolFoundPivot Then Call UndoSciNotation(objSelectedPivot,"#.#") End Sub Sub UndoSciNotation(objPivotTable As Object, strNewFormat As String) Dim strFormat As String Dim lngRow As Long, lngCol As Long Dim objDataCells As ISpssDataCells Set objDataCells = objPivotTable.DataCellArray 'попытка установки процентного формата вызывает численную ошибку! If strNewFormat = "##.#%" Then Exit Sub End If 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 = "#.# ; #.##E-#" Or strFormat = "#.##E+##" Then .NumericFormatAt (lngRow,lngCol) = strNewFormat End If End If Next Next End With objPivotTable.Autofit End Sub |
Related pages
...