Ludens
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору А у меня вот какая задача: нужно в собственной программе (сторонней, не Excel и не макрос) сгенерировать содержимое буфера обмена таким образом, чтобы оно вставлялось в Excel с ОТНОСИТЕЛЬНЫМ ссылками. Ну, например. Создаем в буфере обмена (Clipboard) текст из трех строчек: 3 2 =A1+A2 Если теперь этот текст вставить (Paste) в левый верхний угол листа Excel, то там появится: 3 2 5 причем последняя ячейка (A3) содержит не число, а формулу A1+A2. Очень хорошо, мы именно этого и хотели. Но если мы будем вставлять (Paste) такое же содержимое буфера обмена не в левый верхний угол, а в любое другое место листа, то увидим: 3 2 0 Потому что в последней ячейке формула все равно будет A1+A2! Мы видим, что наши относительные ссылки при вставке формулы в ячейку Exel превратились в абсолютные. А это не то, чего мы хотели. Правда, можно попробовать написать формулу не в виде A1+A2, а как-нибудь так: =INDIRECT(ADDRESS(ROW()-1;COLUMN();4))+INDIRECT(ADDRESS(ROW()-2;COLUMN();4)) В этом случае в ячейке всегда будет появляться сумма двух ячеек над ней. Но это тоже нехорошо, потому что такую ячейку нельзя будет свободно перемещать по листу: формула не будет корректироваться в зависимости от нового местоположения ячейки. А вот как бы сделать так, чтобы при вставке в Excel из буфера обмена формулы, содержащей ОТНОСИТЕЛЬНЫЕ ссылки на ячейки, эти ссылки оставались относительными после вставки? Кто-нибудь пробовал делать такое? |