'Begin Description 'Процедура RemovePctSign удаляет символы процентов (%) из мобильной таблицы. 'End Description 'Тема: 'Удаление символов "%" из мобильных таблиц 'Описание: 'Вопрос. 'Используемая версия SPSS: 7.5 или выше. 'Как можно через скрипт удалить символы "%" из мобильной таблицы? 'Ответ. 'Ниже приводится скрипт, который вносит необходимые изменения в выделенную мобильную таблицу. 'Процедура Main приводится для примера, вы можете её модифицировать, или вовсе заменить своей, но 'процедура RemovePctSign, вероятно, вовсе не нуждается в модификации, независимо от того, будете ли 'вы использовать её в вашем собственном скрипте, или вызывать из процедуры автоскрипта. 'Скрпит является модификацией решения AnswerNet, код решения: 100007757 'Размещено в SPSSX-L 17.03.2003, автор изменений: Raynald Levesque. 'Перевод: А. Балабанов, 11.01.2009. 'Проверено: SPSS 15.0.0. 'Размещение: http://www.spsstools.ru/Scripts/PivotTables/RemovePercentSignsFromPivotTable.txt (.sbs). Sub Main() Dim objPivot As PivotTable Dim objItem As ISpssItem Dim bolFoundOutput As Boolean Dim bolFoundPivot As Boolean 'Мобильная таблица должна быть активирована Call GetFirstSelectedPivot(objPivot, objItem, bolFoundOutput, bolFoundPivot) 'Запрет обновления экрана до окончания внесения исправлений objPivot.UpdateScreen = False 'Изменение формата (удаление %) Call RemovePctSign(objPivot) '### установка числа десятичных знаков не была реализована, второй параметр удален мной - А.Б. objPivot.UpdateScreen = True objItem.Deactivate 'Иногда таблица неправильно обновляется по высоте и ширине; 'повторная активация может это исправить. objItem.ActivateTable objItem.Deactivate End Sub Sub RemovePctSign(objPivot As PivotTable) 'Устанавливает числовой формат с заданным числом десятичных знаков для всех ячеек, содержащих символ"%" '### установка числа десятичных знаков не была реализована, второй параметр удален мной - А.Б. Dim lngRow As Long, lngCol As Long Dim objDataCells As ISpssDataCells Set objDataCells = objPivot.DataCellArray With objDataCells For lngRow = 0 To .NumRows - 1 For lngCol = 0 To .NumColumns - 1 strFormat=.NumericFormatAt(lngRow,lngCol) If Not IsNull (.ValueAt (lngRow, lngCol)) And InStr(strFormat,"%")>0 Then 'Debug.Print .ValueAt (lngRow, lngCol) & " " & .NumericFormatAt(lngRow,lngCol) .NumericFormatAt(lngRow,lngCol)= "#.#" End If Next Next End With objPivot.Autofit End Sub