SAS888Цитата: Может подскажешь наиболее рациональный способ, как в ячейке, содержащей ссылку, изменить источник ссылки? Например, вместо "=[AAA]Sheet1!$A$1" нужно "=[BBB]Sheet2!$A$1", или в общем виде: вместо X!Address получить Y!Address, с учетом того, что X и Y могут содержать символ "!".
Вопрос, в принципе, понятный, но конкретная постановка задачи может сильно облегчить/затруднить решение. Я так понимаю, что
в данном случае к символам "!", "[", "]" можно привязаться? Тогда, ИМХО, алгоритм может быть похож на тот, что ты писал для hackman'a:
1. Ищем в текстовой строке с формулой символ "[", запоминаем позицию
2. Ищем "!", запоминаем позицию
3. Повторяем пп.1-2 (позиция начала каждого поиска - конец предыдущего найденного), пока не нашли всех таких кусочков
4. Меняем с помощью функции REPLACE() части между начальной и конечной позициями в строке, начиная С КОНЦА строки (чтобы позиции символов не поехали).
(Т.е. разбивать ВСЮ строку на кусочки, заменять один и склеивать опять - не нужно).
PS: я вообще не специалист, поэтому не могу претендовать на оптимальное решение, но сам взялся за сложную задачу, т.ч. уже немного поднаторел, а кроме того, решение приходит в процессе обсуждения, т.ч. дополняй, уточняй, в т.ч. по конкретным функциям...
PPS: очень неудобный формат форума для обсуждений. Предпочитаю programmersforum (дот) ру, в соотв. ветке, я там Alkaline.