|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
29.05.2017, 17:09 | #1 |
Пользователь
Регистрация: 17.12.2015
Сообщений: 14
|
Связь Delphi и Excel
Добрый день! Программисты, знающие Delphi, помогите пожалуйста.
Не получается решить проблему, она такова: На форме расположены компоненты "ComboBox1_count", "Edit_time" и "Edit1_predmet". При выборе определенного значения в ComboBox1_count (например "1"), в поле "Edit_time" выводится соответствующее значение времени звонков (оно для справки пользователю), а записанный в поле "Edit1_predmet" учебный предмет заносится в соответствующую ячейку Excel. Но при выборе какого-либо значения в поле "ComboBox1_count" Delphi выдает ошибку: Invalid variant operation Когда удаляю строку temp.Range['E10'] := Form1_week.Edit1_predmet.Text; и все остальные аналогичные, то ошибка не выходит, а необходимо эти два поля связать между собою. Код процедуры: Код:
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ) Модератор Последний раз редактировалось Serge_Bliznykov; 29.05.2017 в 17:18. |
30.05.2017, 01:39 | #2 |
Форумчанин
Регистрация: 10.02.2014
Сообщений: 526
|
Попробуйте так:
Код:
|
30.05.2017, 11:29 | #3 |
Пользователь
Регистрация: 17.12.2015
Сообщений: 14
|
Спасибо, но нет, не получается( Выходит та же самая ошибка
|
30.05.2017, 11:54 | #4 |
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
Код:
Кроме того, Range предполагает работу с диапазона, и одинокая ячейка в него тоже передаётся диапазоном.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Последний раз редактировалось Sciv; 30.05.2017 в 12:00. |
30.05.2017, 12:03 | #5 | |
Форумчанин
Регистрация: 10.02.2014
Сообщений: 526
|
Sciv Ну как-как... По умолчанию принимает, как "измени текстовое значение этой ячейки". У меня прокатывает (D7, COM-подключение, если ничего в названии последнего не путаю, хотя вполне могу). Value, если я правильно понял из экспериментов, уже работает как вставка значения. Так не помню (код дома), но, возможно, принимает и числа. В любом случае тип ячейки меняет под тип вводимых данных (с соответствующими выравниваниями по-умолчанию, округлениями и т.п.).
Цитата:
Последний раз редактировалось Ship_1; 30.05.2017 в 12:10. |
|
30.05.2017, 12:08 | #6 | ||
Старожил
Регистрация: 16.05.2012
Сообщений: 3,211
|
Цитата:
Цитата:
Естественно, дельфа позволяет преобразовать произвольный тип в Variant, но если ты работаешь непосредственно с ячейкой. ТС работает с Range - то есть диапазоном ячеек. Сам понимаешь, одиночное значение диапазону не передашь. Поэтому приходится юзать VariantArray. PS. На самом деле когда я ещё писал программы - я использовал оба способа обращения к экселевским ячейкам, но тот который я предложил, у меня ни разу не стрелял, в отличие от прямой записи в ячейку. И я, кстати, так и не разобрался, почему оно то стреляет, то не стреляет... PPS. Да, кстати, можно же вроде бы ещё и с ячейкой и работать: Код:
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Последний раз редактировалось Sciv; 30.05.2017 в 12:17. |
||
30.05.2017, 12:21 | #7 |
Форумчанин
Регистрация: 10.02.2014
Сообщений: 526
|
Не-не, в данном случае я ячейкой назвал одноячеечный диапазон как раз Как у ТС
Код:
Может, там обработка при выполнении команды экселем: если длинна массива ячеек не 2, а 1, то последняя равна первой Последний раз редактировалось Ship_1; 30.05.2017 в 12:26. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Связь Delphy и Excel | Cherlenina | Помощь студентам | 8 | 29.11.2010 04:33 |
связь строк в excel | loveless | Microsoft Office Excel | 1 | 17.03.2010 16:50 |
Связь с Excel | Foxx | Microsoft Office Word | 2 | 14.03.2010 21:08 |
Связь Word и Excel | kinogruppa | Microsoft Office Excel | 4 | 28.09.2009 22:57 |
Связь Excel и Access | Top | Microsoft Office Excel | 3 | 29.04.2009 16:07 |