Нельзя установить свойство NumberFormat класса Range
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
-
- Сообщения: 8
- Зарегистрирован: 18 мар 2009, 07:06
У меня другой вопрос, я в ячейке хочу сделать формат в '%'
выполняю команду:
Excel.WorkBooks[1].WorkSheets[1].Cells[6, 6].NumberFormat := '0.00%';
в результате ошибка: "Нельзя установить свойство NumberFormat класса Range", может быть вы тут пожалуйста подскажите.
выполняю команду:
Excel.WorkBooks[1].WorkSheets[1].Cells[6, 6].NumberFormat := '0.00%';
в результате ошибка: "Нельзя установить свойство NumberFormat класса Range", может быть вы тут пожалуйста подскажите.
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
А NumberFormatLocal?
-
- Сообщения: 8
- Зарегистрирован: 18 мар 2009, 07:06
Нет с NumberFormatLocal аналогичная ошибка
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Странно.
Эта ошибка обычно возникает, если свойство read-only.
Также она может возникать, если Excel находися в определенном статусе. Например, ничего нельзя форматировать, пока Excel находится в режиме редактирования ячейки. Т.е. форматировать можно только символы в этой ячейке, а все остальное - нет.
Можно взглянуть на весь код, начиная от открыити книги, до места с ошибкой?
Эта ошибка обычно возникает, если свойство read-only.
Также она может возникать, если Excel находися в определенном статусе. Например, ничего нельзя форматировать, пока Excel находится в режиме редактирования ячейки. Т.е. форматировать можно только символы в этой ячейке, а все остальное - нет.
Можно взглянуть на весь код, начиная от открыити книги, до места с ошибкой?
-
- Сообщения: 8
- Зарегистрирован: 18 мар 2009, 07:06
Да, конечно:
Код: Выделить всё
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%';
-
- Сообщения: 8
- Зарегистрирован: 18 мар 2009, 07:06
и в этой же процедуре следом записываю в ячейки:
Код: Выделить всё
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;
- Игорь Акопян
- Сообщения: 1440
- Зарегистрирован: 13 окт 2004, 17:11
- Откуда: СПБ
- Контактная информация:
Выделяю в отдельную тему
[quote="Gray[cLmT"]
У меня другой вопрос, я в ячейке хочу сделать формат в '%'
выполняю команду:
Excel.WorkBooks[1].WorkSheets[1].Cells[6, 6].NumberFormat := '0.00%']
[quote="Gray[cLmT"]
У меня другой вопрос, я в ячейке хочу сделать формат в '%'
выполняю команду:
Excel.WorkBooks[1].WorkSheets[1].Cells[6, 6].NumberFormat := '0.00%']

-
- Сообщения: 8
- Зарегистрирован: 18 мар 2009, 07:06
Попробывал с выделением... тоже ошибка
---------- Post added at 11:00 ---------- Previous post was Вчера at 09:56 ----------
Лапухнулся... нужно запятую вместо точки... пардон.
Код: Выделить всё
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 ----------
Лапухнулся... нужно запятую вместо точки... пардон.
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
На счет запятых и точек:
Свойства, заканчивающиеся на Local используют значения, в которых разделитель берется из национальных настроек. Так что ставбте на запятую или точку, а Sysutils.DecimalSeparator
Свойства, заканчивающиеся на Local используют значения, в которых разделитель берется из национальных настроек. Так что ставбте на запятую или точку, а Sysutils.DecimalSeparator