Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Копирование формул макросом без сдвига ссылок - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Копирование формул макросом без сдвига ссылок
makc1985 Дата: Понедельник, 27.10.2014, 11:18 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 45
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
Здравствуйте, может мой вопрос уже изъезжен, но не могу найти решение.
Необходимо скопировать формулу из ячейки одного документа в ячейку другого документа.
Опишу кратко, код там большой но все упирается в следующий отрезок.
Допустим в ячейке есть формула A1+B1
[vba]
Код

Set WS1 = Workbooks.Item("Договоры1.xlsm").Sheets("Договоры")
Set WS2 = Workbooks.Item("Договоры2.xlsm").Sheets("Договоры")
WS1.Cells(1, 2).Copy: WS2.Cells(1, 2).PasteSpecial xlPasteValues   'Копирую значения
WS1.Cells(1, 2).Copy: WS2.Cells(1, 2).PasteSpecial xlPasteFormulas    'Копирую формулы
[/vba]

В итоге в файл "Договоры2" копируется ячейка, а формула в ней ссылается на ячейки файла "Договоры1"
с результатом 'C:\...\Договоры1'!A1+C:\...\Договоры1'!B1
Как быть? нужно чтобы получилось A1+B1
Я так понимаю можно какой то приписать параметр может быть?
 
Ответить
СообщениеЗдравствуйте, может мой вопрос уже изъезжен, но не могу найти решение.
Необходимо скопировать формулу из ячейки одного документа в ячейку другого документа.
Опишу кратко, код там большой но все упирается в следующий отрезок.
Допустим в ячейке есть формула A1+B1
[vba]
Код

Set WS1 = Workbooks.Item("Договоры1.xlsm").Sheets("Договоры")
Set WS2 = Workbooks.Item("Договоры2.xlsm").Sheets("Договоры")
WS1.Cells(1, 2).Copy: WS2.Cells(1, 2).PasteSpecial xlPasteValues   'Копирую значения
WS1.Cells(1, 2).Copy: WS2.Cells(1, 2).PasteSpecial xlPasteFormulas    'Копирую формулы
[/vba]

В итоге в файл "Договоры2" копируется ячейка, а формула в ней ссылается на ячейки файла "Договоры1"
с результатом 'C:\...\Договоры1'!A1+C:\...\Договоры1'!B1
Как быть? нужно чтобы получилось A1+B1
Я так понимаю можно какой то приписать параметр может быть?

Автор - makc1985
Дата добавления - 27.10.2014 в 11:18
Саня Дата: Понедельник, 27.10.2014, 11:29 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 1068
Репутация: 560 ±
Замечаний: 0% ±

XL 2016
так попробуйте:

[vba]
Код
WS2.Cells(1, 2).formular1c1=WS1.Cells(1, 2).formular1c1
[/vba]
 
Ответить
Сообщениетак попробуйте:

[vba]
Код
WS2.Cells(1, 2).formular1c1=WS1.Cells(1, 2).formular1c1
[/vba]

Автор - Саня
Дата добавления - 27.10.2014 в 11:29
makc1985 Дата: Вторник, 28.10.2014, 03:56 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 45
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
:D Все гениальное просто! Спасибо! То что нужно!
 
Ответить
Сообщение:D Все гениальное просто! Спасибо! То что нужно!

Автор - makc1985
Дата добавления - 28.10.2014 в 03:56
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!