Имя: Пароль:
1C
 
Как задать числовой формат ячеек эксель с разделителем групп разрядов?
0 AlexToo
 
03.06.21
09:56
Добрый день, сохраняю программно отчет в эксель. Нужно что бы при открытии числовые значения в ячейках отображались в числом формате с разделитетем групп разрядов. Если такое проделать макросом в эксель, то он предлагает вот такой формат:
Sub Макрос1()
'
' Макрос1 Макрос
'
'
  Selection.NumberFormat = "#,##0.00"
End Sub

Однако если формат "#,##0.00" попытаться указать в 1С, то выдает ошибку:
Эксель.Range(Лист.Cells(7,8),Лист.Cells(ВсегоСтрок,8)).Select();
Эксель.Selection.NumberFormat = "#,##0.00";

Форма.ФормаОтчета.Форма(199)}: Ошибка при установке значения атрибута контекста (NumberFormat)
     Эксель.Selection.NumberFormat = "#,##0.00";
по причине:
Произошла исключительная ситуация (Microsoft Excel): Нельзя установить свойство NumberFormat класса Range

Методом тыка, понял, что спотыкается скорее всего из-за точки после нуля т.к. в экселе разделители запятые. Поэтому скорректировал формат вот таким образом "#,##0,00", но при таком формате он мне число превращает в какую-то херобору: 176220606,650,00 хотя в идеале должно быть 176 220 606,65. Если убрать решетки и оставить формат "0,00", то число выведется правильно, но без разделителей разрядов т.е.  176220606,65, а мне надо было что бы  176 220 606,65.
Подскажите как правильно указать разделитель разрядов в формате?
1 AlexToo
 
03.06.21
10:02
А всё снизошло озарение, указал формат "# ##0,00" тогда всё выводиться как нужно.
2 mistеr
 
03.06.21
10:03
Select() лишний. Получил Range, и делай с ним что хочешь.
3 AlexToo
 
03.06.21
10:16
(2) если убрать Select() , то выйдет ошибка :
Эксель.Range(Лист.Cells(7,8),Лист.Cells(ВсегоСтрок,8));
по причине:
Метод не найден

Даже если макрос самого экселя посмотреть там тоже сначала Range идет затем Select
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан