Страница 1 из 1
Нельзя установить свойство NumberFormat класса Range
Добавлено: 18 мар 2009, 11:48
Gray[cLmT]
У меня другой вопрос, я в ячейке хочу сделать формат в '%'
выполняю команду:
Excel.WorkBooks[1].WorkSheets[1].Cells[6, 6].NumberFormat := '0.00%';
в результате ошибка: "Нельзя установить свойство NumberFormat класса Range", может быть вы тут пожалуйста подскажите.
Нельзя установить свойство NumberFormat класса Range
Добавлено: 18 мар 2009, 15:48
Naeel Maqsudov
А NumberFormatLocal?
Re: Delphi и Excel (проблема с пересчётом формул)
Добавлено: 19 мар 2009, 07:39
Gray[cLmT]
Нет с NumberFormatLocal аналогичная ошибка
Re: Delphi и Excel (проблема с пересчётом формул)
Добавлено: 19 мар 2009, 08:45
Naeel Maqsudov
Странно.
Эта ошибка обычно возникает, если свойство read-only.
Также она может возникать, если Excel находися в определенном статусе. Например, ничего нельзя форматировать, пока Excel находится в режиме редактирования ячейки. Т.е. форматировать можно только символы в этой ячейке, а все остальное - нет.
Можно взглянуть на весь код, начиная от открыити книги, до места с ошибкой?
Re: Delphi и Excel (проблема с пересчётом формул)
Добавлено: 20 мар 2009, 05:35
Gray[cLmT]
Да, конечно:
Код: Выделить всё
procedure TForm1.Button2Click(Sender: TObject);
var
Excel: Variant;
begin
Excel := CreateOleObject('Excel.Application');
Excel.WorkBooks.add;
Excel.Visible := False;
Excel.Range['B1', 'C10'].NumberFormat := '0.00%';
Re: Delphi и Excel (проблема с пересчётом формул)
Добавлено: 20 мар 2009, 05:39
Gray[cLmT]
и в этой же процедуре следом записываю в ячейки:
Код: Выделить всё
Excel.WorkBooks[1].WorkSheets[1].Cells[1, 1]:='Время';
Excel.WorkBooks[1].WorkSheets[1].Cells[1, 2]:='КОКС';
Excel.WorkBooks[1].WorkSheets[1].Cells[1, 3]:='Порфирит';
Excel.WorkBooks[1].WorkSheets[1].Cells[1, 4]:='Доломит';
Excel.WorkBooks[1].WorkSheets[1].Cells[1, 5]:='Шлак';
Excel.WorkBooks[1].WorkSheets[1].Cells[1, 6]:='КОКС';
Excel.WorkBooks[1].WorkSheets[1].Cells[1, 7]:='Доломит';
Excel.WorkBooks[1].WorkSheets[1].Cells[1, 8]:='Порфирит';
Excel.WorkBooks[1].WorkSheets[1].Cells[1, 9]:='Шлак';
Excel.WorkBooks[1].WorkSheets[1].Cells[1, 10]:='Всего шихты';
Excel.WorkBooks[1].WorkSheets[1].Cells[1, 11]:='Мк';
Excel.WorkBooks[1].WorkSheets[1].Rows[1].Font.Bold := True;
Нельзя установить свойство NumberFormat класса Range
Добавлено: 20 мар 2009, 09:16
Игорь Акопян
Выделяю в отдельную тему
[quote="Gray[cLmT"]
У меня другой вопрос, я в ячейке хочу сделать формат в '%'
выполняю команду:
Excel.WorkBooks[1].WorkSheets[1].Cells[6, 6].NumberFormat := '0.00%']
Re: Delphi и Excel (проблема с пересчётом формул)
Добавлено: 23 мар 2009, 09:00
Gray[cLmT]
Попробывал с выделением... тоже ошибка
Код: Выделить всё
procedure TForm1.Button4Click(Sender: TObject);
var
Excel: Variant;
begin
Excel := CreateOleObject('Excel.Application');
Excel.WorkBooks.add;
Excel.Range['A1: C1'].Select;
Excel.selection.Columns.NumberFormatLocal := '0.00%';
end;
---------- Post added at 11:00 ---------- Previous post was Вчера at 09:56 ----------
Лапухнулся... нужно запятую вместо точки... пардон.
Re: Нельзя установить свойство NumberFormat класса Range
Добавлено: 23 мар 2009, 09:55
Naeel Maqsudov
На счет запятых и точек:
Свойства, заканчивающиеся на Local используют значения, в которых разделитель берется из национальных настроек. Так что ставбте на запятую или точку, а Sysutils.DecimalSeparator