Excel. Разбивание формулы на смысловые части.

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
Andruha
Сообщения: 6
Зарегистрирован: 17 дек 2004, 12:02

Excel. Разбивание формулы на смысловые части.

Сообщение Andruha » 17 дек 2004, 12:15

Доброго дня всем и удачи!
У меня возникла следующая "закавыка":
нужно получить формулу, которая может содержать ссылки, в текстовом виде (что, конечно же, не проблема), НО заменив адресное обозначение ячеек на их описание (столбец с формулами, а следующий столбец с описаниями ячеек). Иными словами, можно ли как-то получить описание работы макроса, навешенного на кнопку "ВЫЧИСЛИТЬ" с панели инструментов "Зависимости". Там как раз в окошке формулка последовательно вычисляется....
Я было попытался запихнуть формулку в массив (думал, что в массив занесется в порядке вычисления вся формула по действиям), но не получилось у меня (свойсто FormulaArray объекта Range все равно возвращает строку).
Спасибо за внимание и за потраченное на прочтение(ответ) время.

Аватара пользователя
Naeel Maqsudov
Сообщения: 2551
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

Сообщение Naeel Maqsudov » 21 дек 2004, 15:34

Иными словами, можно ли как-то получить описание работы макроса, навешенного на кнопку "ВЫЧИСЛИТЬ" с панели инструментов "Зависимости". Там как раз в окошке формулка последовательно вычисляется....
Какая версия Excel? У меня сейчас под рукой только 97 и там такой кнопки нет. Вообще не думаю, что это мамкрос...
нужно получить формулу, которая может содержать ссылки, в текстовом виде (что, конечно же, не проблема), НО заменив адресное обозначение ячеек на их описание (столбец с формулами, а следующий столбец с описаниями ячеек).
Стандартных средств сделать это в VBA кажется нет. Возможно прийдется самостоятельно писать систаксический разбор формулы и вычленять ссылки. Причем, имейте в виду, что вместо адреса (в относительной, абсолютной или смешанной записи) может стоять еще и имя диапазона.

А можно предысторию проблемы, зачем все это надо?
А тот может можно все сделать гораздо прооще?

Andruha
Сообщения: 6
Зарегистрирован: 17 дек 2004, 12:02

Сообщение Andruha » 23 дек 2004, 11:59

Спасибо Вам за ответ. Приятно, что мой вопрос не остался без внимания.
А предыстория простая: методологам удобнее прописывать формулы, связывающие некоторые показатели, в EXCEL. А программируем эту все бодягу вообще в другой системе. И я хотел бы сразу получить эти формулы в терминах другой системы. А для этого мне и нужно было получить это формулу, так сказать, по частям.... Пользую Excel 2002.
Всем удачи!
С наступающим, друзья!

Аватара пользователя
Naeel Maqsudov
Сообщения: 2551
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

Сообщение Naeel Maqsudov » 23 дек 2004, 14:31

Возможно, частично решит проблему использование имен.

Все необходимыые ячейки проименуйте (но это нужно до создания фоормул делать) в терминах этой самой "другой системы" (правда на имена накладываются ограничения, такие же как на обычный идентификатор). При построении формул вместо адресов будут подставлятья имена. Напрмиер, "=Цена*Количество", вместо "=А1*В1".

Andruha
Сообщения: 6
Зарегистрирован: 17 дек 2004, 12:02

Сообщение Andruha » 23 дек 2004, 14:45

Cool!
Думаю, получится. Спасиб.

Аватара пользователя
Naeel Maqsudov
Сообщения: 2551
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

Сообщение Naeel Maqsudov » 23 дек 2004, 14:50

На всякий случай:

Быстрее всего имя присваивается в поле имени (первая клеточка в строке формул, где отображается адрес текущей ячейки). Кликкаем туда, вводим имя и жмем Enter.

Удалить имя можно во Вставка/Имя/Присвоить

Andruha
Сообщения: 6
Зарегистрирован: 17 дек 2004, 12:02

Сообщение Andruha » 12 янв 2005, 15:26

Не, дяденька Максудов. Ничего не вышло. К сожалению. При присвоении имен ячейкам, формулы как были в A1 форме, так и остались... Как-нибудь обновить их тоже не получилось. Вот...

Аватара пользователя
Игорь Акопян
Сообщения: 1419
Зарегистрирован: 13 окт 2004, 16:11
Откуда: СПБ
Контактная информация:

Сообщение Игорь Акопян » 13 янв 2005, 13:32

Существующие формулы, естественно, автоматически не будут изменены. Я так понимаю предлагалось именовать рабочие диапазоны, и задать формулы используя эти имена
Изображение

Ответить