![]() |
|
Модераторы: mihanik |
![]()
|
|
| motorway |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 578 Регистрация: 2.3.2008 Репутация: нет Всего: 0 |
Подскажите, как сделать следующее.
Нажимаешь на ячейку. Куда-то запоминается значение, которое там введено. Вводишь формулу. Нажимаешь Enter, и результат вычисления помещается в комментарий к ячейке, а значение становится равным запомненному ранее. -------------------- Russian Pascal Developer Network - Сеть разработчиков на языке программирования Pascal/Object Pascal Форум Delphi/Kylix, Free Pascal Compiler/Lazarus, PascalABC.NET Онлайн-кинотеатр |
|||
|
||||
| Naghual |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1893 Регистрация: 15.5.2004 Где: Украина, Днепр Репутация: 7 Всего: 49 |
Ты все развлекаешься?
-------------------- Я желаю всем Счастья! |
|||
|
||||
| motorway |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 578 Регистрация: 2.3.2008 Репутация: нет Всего: 0 |
Нет, у меня просто приложение нового поколения.
-------------------- Russian Pascal Developer Network - Сеть разработчиков на языке программирования Pascal/Object Pascal Форум Delphi/Kylix, Free Pascal Compiler/Lazarus, PascalABC.NET Онлайн-кинотеатр |
|||
|
||||
| Naghual |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1893 Регистрация: 15.5.2004 Где: Украина, Днепр Репутация: 7 Всего: 49 |
ну, ну...
Для таких целей, в самый раз начать писать собственные приложения а не пользоваться VBA. Касательно твоего вопроса: События для VBA эксель генерирует ПОСЛЕ события как такового. Так что никак. -------------------- Я желаю всем Счастья! |
|||
|
||||
| motorway |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 578 Регистрация: 2.3.2008 Репутация: нет Всего: 0 |
В таком случае, последний "странный" вопрос. У меня формулы для ячеек хранятся в примечаниях в виде текста. Соответственно, при изменении адресов ячеек они не меняются, а нужно, чтобы менялись. Как это можно "эмулировать"? Можно их перенести макросом в виде формул обычных на новый лист и выполнить ту же операцию удаления/вставки строки или столбца, чтобы формулы сами изменились. А потом обратно в примечание загнать.
Например, при вставке строки A9+C9 в примечании должно превратиться в A10+C10. Либо надо написать функцию, которая определяет, для каких ячеек нужно в примечании исправить адреса. Это сообщение отредактировал(а) motorway - 13.7.2009, 00:17 -------------------- Russian Pascal Developer Network - Сеть разработчиков на языке программирования Pascal/Object Pascal Форум Delphi/Kylix, Free Pascal Compiler/Lazarus, PascalABC.NET Онлайн-кинотеатр |
|||
|
||||
| Naghual |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1893 Регистрация: 15.5.2004 Где: Украина, Днепр Репутация: 7 Всего: 49 |
Должно быть возможно. Нужно пробовать.
-------------------- Я желаю всем Счастья! |
|||
|
||||
| RockClimber |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 848 Регистрация: 5.5.2006 Где: планета 013 в тен туре Репутация: 7 Всего: 15 |
Это просто Делаешь скрытый лист. На нем пишешь свои формулы (которые ссылаются на видимый лист). Как только на видимом листе вставляешь строку, на скрытом меняется формула. Потом пишешь в обработчик OnChange (не путать с OnSelectionChange!) код, который формулу вставит в примечание. Там же на скрытом листе можно организовать хранение разной дополнительной информации (а она ой как понадобится)... -------------------- Хорошо кинутый дятел далеко летит, крепко встревает, долго торчит. |
|||
|
||||
| Naghual |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1893 Регистрация: 15.5.2004 Где: Украина, Днепр Репутация: 7 Всего: 49 |
Опять скрытые листы... Где-то я это уже слышал...
-------------------- Я желаю всем Счастья! |
|||
|
||||
| motorway |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 578 Регистрация: 2.3.2008 Репутация: нет Всего: 0 |
А что, есть что-то лучше?
-------------------- Russian Pascal Developer Network - Сеть разработчиков на языке программирования Pascal/Object Pascal Форум Delphi/Kylix, Free Pascal Compiler/Lazarus, PascalABC.NET Онлайн-кинотеатр |
|||
|
||||
| RockClimber |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 848 Регистрация: 5.5.2006 Где: планета 013 в тен туре Репутация: 7 Всего: 15 |
Обычно - да, в данном случае - я не знаю. Но если я предлагаю скрытый лист, то это значит, что у меня фантазия кончилась. Конкретно эта задача необычна для экселя, это как почесать левое ухо правой пяткой.
-------------------- Хорошо кинутый дятел далеко летит, крепко встревает, долго торчит. |
|||
|
||||
| motorway |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 578 Регистрация: 2.3.2008 Репутация: нет Всего: 0 |
Насчет скрытых листов. Я решил, что можно их сделать, но если я захочу потом их удалить (в макросе он будет только на время выполнения функции), будет выводиться предупреждение, что там могут содержаться данные. Можно ли удалять сразу без его вывода?
P.S. нашел: Application.DisplayAlerts = False, затем включаем на True Это сообщение отредактировал(а) motorway - 14.7.2009, 21:59 -------------------- Russian Pascal Developer Network - Сеть разработчиков на языке программирования Pascal/Object Pascal Форум Delphi/Kylix, Free Pascal Compiler/Lazarus, PascalABC.NET Онлайн-кинотеатр |
|||
|
||||
| motorway |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 578 Регистрация: 2.3.2008 Репутация: нет Всего: 0 |
Нет, все-таки мне определенно нужна помощь с этой проблемой. Нужно, чтобы при изменении адресов ячеек менялись соотв. адреса в примечаниях.
-------------------- Russian Pascal Developer Network - Сеть разработчиков на языке программирования Pascal/Object Pascal Форум Delphi/Kylix, Free Pascal Compiler/Lazarus, PascalABC.NET Онлайн-кинотеатр |
|||
|
||||
| Naghual |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1893 Регистрация: 15.5.2004 Где: Украина, Днепр Репутация: 7 Всего: 49 |
motorway, я тебе уже говорил: Пора писать собственное приложение и не мучать VBA
-------------------- Я желаю всем Счастья! |
|||
|
||||
| RockClimber |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 848 Регистрация: 5.5.2006 Где: планета 013 в тен туре Репутация: 7 Всего: 15 |
Я уже писал, как это сделать. Вот реализация. Если и теперь непонятно, то я даже не знаю.
Присоединённый файл ( Кол-во скачиваний: 4 )
111.zip 8,34 Kb-------------------- Хорошо кинутый дятел далеко летит, крепко встревает, долго торчит. |
|||
|
||||
| motorway |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 578 Регистрация: 2.3.2008 Репутация: нет Всего: 0 |
В общем, кое-как сделал без доп. листа, правда, кое-что для пользователя может быть не удобно. Но там еще одна проблема возникла - иногда в ячейке нужно хранить некоторое значение, и при этом там на время должна появиться формула. При вставке/удалении строк/столбцов это все поедет в какую-то сторону, и потом надо будет восстановить то значение, которое было в ячейке сначала. Но так как ячейки поехали (вниз или вверх, или вправо/влево), то если просто поместить прошлые значения там, где они были, то это будет неправильно. Ведь они должны появиться на новом месте формул по новому адресу. В общем, не знаю, как я справлюсь с этой проблемой, ну ладно...
Это сообщение отредактировал(а) motorway - 16.7.2009, 16:57 -------------------- Russian Pascal Developer Network - Сеть разработчиков на языке программирования Pascal/Object Pascal Форум Delphi/Kylix, Free Pascal Compiler/Lazarus, PascalABC.NET Онлайн-кинотеатр |
|||
|
||||
![]()
|
| Правила форума "Программирование, связанное с MS Office" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще!
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Программирование, связанное с MS Office | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |