PDA

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



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

Naeel Maqsudov
21.12.2004, 15:34
Иными словами, можно ли как-то получить описание работы макроса, навешенного на кнопку "ВЫЧИСЛИТЬ" с панели инструментов "Зависимости". Там как раз в окошке формулка последовательно вычисляется....

Какая версия Excel? У меня сейчас под рукой только 97 и там такой кнопки нет. Вообще не думаю, что это мамкрос...


нужно получить формулу, которая может содержать ссылки, в текстовом виде (что, конечно же, не проблема), НО заменив адресное обозначение ячеек на их описание (столбец с формулами, а следующий столбец с описаниями ячеек).

Стандартных средств сделать это в VBA кажется нет. Возможно прийдется самостоятельно писать систаксический разбор формулы и вычленять ссылки. Причем, имейте в виду, что вместо адреса (в относительной, абсолютной или смешанной записи) может стоять еще и имя диапазона.

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

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

Naeel Maqsudov
23.12.2004, 14:31
Возможно, частично решит проблему использование имен.

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

Andruha
23.12.2004, 14:45
Cool!
Думаю, получится. Спасиб.

Naeel Maqsudov
23.12.2004, 14:50
На всякий случай:

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

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

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

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