Имя: Пароль:
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
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.