Копирование формулы в excel в другую книгу

Важно помнить о возможностях изменения относительной ссылки на ячейку при переходе или копировании формулы.

  • Перемещение формулы При этом ссылки на ячейки в формуле не изменяются независимо от типа ссылки на ячейку.

  • Копирование формулы: При копировании формулы изменяются относительные ссылки на ячейки.

Перемещение формулы

  1. Выделите ячейку с формулой, которую необходимо переместить.

  2. В группе Буфер обмена на вкладке Главная нажмите кнопку Вырезать.

    Формулы можно скопировать и путем перетаскивания границы выделенной ячейки в левую верхнюю ячейку области вставки. При этом будут заменяться все существующие данные.

  3. Выполните одно из указанных ниже действий.

    • Чтобы вировать формулу иформатирование: в группе Буфер обмена на вкладке Главная нажмите кнопку В виде вкладки.

    • Чтобы вировать только формулу:в группе Буфер обмена на вкладке Главная нажмите кнопку В paste(Главная), выберите специальная ветвь ищелкните Формулы.

Копирование формулы

  1. Вы выберите ячейку, содержащую формулу, которую нужно скопировать.

  2. В группе Буфер обмена на вкладке Главная нажмите кнопку Копировать.

  3. Выполните одно из указанных ниже действий.

    • Чтобы вировать формулу и любое форматирование, в группе Буфер обмена на вкладке Главная нажмите кнопку В виде вкладки.

    • Чтобы вировать только формулу, в группе Буфер обмена на вкладке Главная нажмите кнопку Вировать ,выберите специальная ветвь ,а затем щелкните Формулы.
       

      Примечание: В нее можно вклеить только результаты формулы. В группе Буфер обмена на вкладке Главная нажмите кнопку Вировать, выберите специальная ветвь ,а затем щелкните Значения.

  4. Убедитесь, что ссылки на ячейки в формуле дают нужный результат. При необходимости переключить тип ссылки можно следующим образом:

    1. Выделите ячейку с формулой.

    2. В строке формул строка формул Изображение кнопки выделите ссылку, которую нужно изменить.

    3. Для переключения между сочетаниями нажмите F4.

      В таблице подводится информация об обновлении типа ссылки при копировании формулы, содержащей ссылку, на две ячейки вниз и на две ячейки вправо.

Копируемая формула

Первоначальная ссылка

Новая ссылка

Формула, копируемая из ячейки A1 на две ячейки вниз и вправо

$A$1 (абсолютный столбец и абсолютная строка)

$A$1

A$1 (относительный столбец и абсолютная строка)

C$1

$A1 (абсолютный столбец и относительная строка)

$A3

A1 (относительный столбец и относительная строка)

C3

Примечание: Формулы также можно копировать в смежные ячейки с помощью маркер заполнения Маркер заполнения. После проверки на то, что ссылки на ячейки в формуле дают нужный результат в шаге 4, вы выберите ячейку со скопированной формулой и перетащите его по диапазону, который вы хотите заполнить.

Перемещение формул очень похоже на перемещение данных в ячейках. Единственное, что нужно знать, — ссылки на ячейки, используемые в формуле, остаются нужными после перемещения.

  1. Вы выберите ячейку с формулой, которую вы хотите переместить.

  2. Щелкните Главная > вырезать (или нажмите CTRL+X).

    Команда "Вырезать" в группе "Буфер обмена"

  3. Выйдите из ячейки, в которая должна вться формула, и нажмите кнопку Вировать (или нажмите CTRL+V).

    Команда "Вставить" в группе "Буфер обмена"

  4. Убедитесь, что ссылки на ячейки остаются нужными.

    Совет: Вы также можете щелкнуть ячейки правой кнопкой мыши, чтобы вырезать и врезать формулу.
    Щелкните правой кнопкой мыши, чтобы увидеть команды "Копировать", "Вырезать" и "Вставить"

Копирование формул без сдвига ссылок

Проблема

Предположим, что у нас есть вот такая несложная таблица, в которой подсчитываются суммы по каждому месяцу в двух городах, а затем итог переводится в евро по курсу из желтой ячейки J2.

exact-formulas-copy1.png

Проблема в том, что если скопировать диапазон D2:D8 с формулами куда-нибудь в другое место на лист, то Microsoft Excel автоматически скорректирует ссылки в этих формулах, сдвинув их на новое место и перестав считать:

exact-formulas-copy2.png

Задача: скопировать диапазон с формулами так, чтобы формулы не изменились и остались теми же самыми, сохранив результаты расчета.

Способ 1. Абсолютные ссылки

Как можно заметить по предыдущей картинке, Excel сдвигает только относительные ссылки. Абсолютная (со знаками $) ссылка на желтую ячейку $J$2 не сместилась. Поэтому для точного копирования формул можно временно перевести все ссылки во всех формулах в абсолютные. Нужно будет выделить каждую формулу в строке формул и нажать клавишу F4:

exact-formulas-copy9.png

При большом количестве ячеек этот вариант, понятное дело, отпадает — слишком трудоемко.

Способ 2. Временная деактивация формул

Чтобы формулы при копировании не менялись, надо (временно) сделать так, чтобы Excel перестал их рассматривать как формулы. Это можно сделать, заменив на время копирования знак «равно» (=) на любой другой символ, не встречающийся обычно в формулах, например на «решетку» (#) или на пару амперсандов (&&). Для этого:

  1. Выделяем диапазон с формулами (в нашем примере D2:D8)
  2. Жмем Ctrl+H на клавиатуре или на вкладке Главная — Найти и выделить — Заменить (Home — Find&Select — Replace)

    exact-formulas-copy3.png

  3. В появившемся диалоговом окне вводим что ищем и на что заменяем и в Параметрах (Options) не забываем уточнить Область поиска — Формулы. Жмем Заменить все (Replace all).
  4. Копируем получившийся диапазон с деактивированными формулами в нужное место:

    exact-formulas-copy4.png

  5. Заменяем # на = обратно с помощью того же окна, возвращая функциональность формулам.

Способ 3. Копирование через Блокнот

Этот способ существенно быстрее и проще.

Нажмите сочетание клавиш Ctrl+Ё или кнопку Показать формулы на вкладке Формулы (Formulas — Show formulas), чтобы включить режим проверки формул — в ячейках вместо результатов начнут отображаться формулы, по которым они посчитаны:

exact-formulas-copy5.png

Скопируйте наш диапазон D2:D8 и вставьте его в стандартный Блокнот:

exact-formulas-copy6.png

Теперь выделите все вставленное (Ctrl+A), скопируйте в буфер еще раз (Ctrl+C) и вставьте на лист в нужное вам место:

exact-formulas-copy7.png

Осталось только отжать кнопку Показать формулы (Show Formulas), чтобы вернуть Excel в обычный режим.

Примечание: этот способ иногда дает сбой на сложных таблицах с объединенными ячейками, но в подавляющем большинстве случаев — работает отлично.

Способ 4. Макрос

Если подобное копирование формул без сдвига ссылок вам приходится делать часто, то имеет смысл использовать для этого макрос. Нажмите сочетание клавиш Alt+F11 или кнопку Visual Basic на вкладке Разработчик (Developer), вставьте новый модуль через меню Insert — Module  и скопируйте туда текст вот такого макроса:

Sub Copy_Formulas()
    Dim copyRange As Range, pasteRange As Range
    
    On Error Resume Next
    Set copyRange = Application.InputBox("Выделите ячейки с формулами, которые надо скопировать.", _
                                "Точное копирование формул", Default:=Selection.Address, Type:=8)
    If copyRange Is Nothing Then Exit Sub
    Set pasteRange = Application.InputBox("Теперь выделите диапазон вставки." & vbCrLf & vbCrLf & _
                                          "Диапазон должен быть равен по размеру исходному " & vbCrLf & _
                                          "диапазону копируемых ячеек.", "Точное копирование формул", _
                                          Default:=Selection.Address, Type:=8)
    
    If pasteRange.Cells.Count <> copyRange.Cells.Count Then
        MsgBox "Диапазоны копирования и вставки разного размера!", vbExclamation, "Ошибка копирования"
        Exit Sub
    End If
    
    If pasteRange Is Nothing Then
        Exit Sub
    Else
        pasteRange.Formula = copyRange.Formula
    End If
End Sub

Для запуска макроса можно воспользоваться кнопкой Макросы на вкладке Разработчик (Developer — Macros) или сочетанием клавиш Alt+F8. После запуска макрос попросит вас выделить диапазон с исходными формулами и диапазон вставки и произведет точное копирование формул автоматически:

exact-formulas-copy8.png

Ссылки по теме

  • Удобный просмотр формул и результатов одновременно
  • Зачем нужен стиль ссылок R1C1 в формулах Excel
  • Как быстро найти все ячейки с формулами
  • Инструмент для точного копирования формул из надстройки PLEX

копирование формул без связи

kissi80

Дата: Пятница, 18.11.2011, 09:48 |
Сообщение № 1

Группа: Пользователи

Ранг: Новичок

Сообщений: 16


Репутация:

0

±

Замечаний:
0% ±


Копирую столбец из одной книги (Книга1) в другую(Книга2). При этом формулы в столбце в Книге2 имеют вид, например,
[Книга2]А1+В2
Как убрать ссылку [книга2], чтобы формула выглядела как и в источнике, т.е. А1+В2

 

Ответить

KuklP

Дата: Пятница, 18.11.2011, 09:54 |
Сообщение № 2

Группа: Проверенные

Ранг: Старожил

Сообщений: 2369


Репутация:

486

±

Замечаний:
0% ±


2003-2010

ctrl+h


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728

 

Ответить

light26

Дата: Пятница, 18.11.2011, 09:57 |
Сообщение № 3

Группа: Друзья

Ранг: Старожил

Сообщений: 1341


Репутация:

91

±

Замечаний:
0% ±


2007, 2010, 2013

Или через специальную вставку — формулы


Я не волшебник. Я только учусь

 

Ответить

kissi80

Дата: Пятница, 18.11.2011, 11:29 |
Сообщение № 4

Группа: Пользователи

Ранг: Новичок

Сообщений: 16


Репутация:

0

±

Замечаний:
0% ±


light26,
вид в источнике (Книга1), например, в ячейке Y20, на листе с названием Итоги:
=коммунальщик!Z20
где коммунальщик — название листа в этой книге.
вид в другой книге, куда копируется столбец(!)
='[Книга1.xlsx]коммунальщик’!Z20

Так вот надо , чтобы названия книги, т.е. что бы квадратных скобок и внутренностей их НЕ БЫЛО!

 

Ответить

kissi80

Дата: Пятница, 18.11.2011, 11:31 |
Сообщение № 5

Группа: Пользователи

Ранг: Новичок

Сообщений: 16


Репутация:

0

±

Замечаний:
0% ±


light26,
Кстати, спец.вставка-формулы ничего не дает…

 

Ответить

_Boroda_

Дата: Пятница, 18.11.2011, 11:39 |
Сообщение № 6

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

Как вариант, правда с неким дополнительным действом:
после вставки жмем Ctrl+H, в «Найти» — «[Книга1]», в «Заменить на» — ничего, в «Область поиска» — «формулы». И жмем «Заменить все».


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

kissi80

Дата: Пятница, 18.11.2011, 14:01 |
Сообщение № 7

Группа: Пользователи

Ранг: Новичок

Сообщений: 16


Репутация:

0

±

Замечаний:
0% ±


_Boroda_,
это да, это я уже нарыл, спасибо.
однако хотелось бы что-нить попроще в смысле макрос какой-нибудь, т.е. кнопку нажал и все сделалось, без дополнительных действов, поскольку это не я буду делать, а пользователи, со всеми вытекающими…(((

 

Ответить

_Boroda_

Дата: Пятница, 18.11.2011, 16:07 |
Сообщение № 8

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

[vba]

Код

Sub Ubit_ssylki()
      Selection.Replace What:=»[*]», Replacement:=»»
End Sub

[/vba]
Такой макрос. Можно положить в книгу макросов (Персонал), можно использовать только в этой книге. Можно повесить на кнопку. Второй файл должен быть открыт. Судя по первому посту, так оно и есть.

К сообщению приложен файл:

21.xls
(30.0 Kb)


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

KuklP

Дата: Пятница, 18.11.2011, 16:07 |
Сообщение № 9

Группа: Проверенные

Ранг: Старожил

Сообщений: 2369


Репутация:

486

±

Замечаний:
0% ±


2003-2010

А че, макрорекордер заблокирован?
П.С. можно в критерий

  • . Интересный эффект — см. картинку и пост.
  • К сообщению приложен файл:

    2805805.gif
    (10.2 Kb)


    Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
    WM Z206653985942, R334086032478, U238399322728

    Сообщение отредактировал KuklPПятница, 18.11.2011, 16:11

     

    Ответить

    KuklP

    Дата: Пятница, 18.11.2011, 16:55 |
    Сообщение № 10

    Группа: Проверенные

    Ранг: Старожил

    Сообщений: 2369


    Репутация:

    486

    ±

    Замечаний:
    0% ±


    2003-2010

    Дык, мы одновременно ответили:-)


    Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
    WM Z206653985942, R334086032478, U238399322728

     

    Ответить

    v__step

    Дата: Суббота, 19.11.2011, 19:53 |
    Сообщение № 11

    Группа: Проверенные

    Ранг: Форумчанин

    Сообщений: 225


    Репутация:

    27

    ±

    Замечаний:
    0% ±


    Если подобных переносов много, замены становятся очень трудоемкими.
    Тогда лучше не заниматься заменами, а в конце открыть окно связей (в XL2003 Правка >> Связи) и пересоединить связи на новую книгу
    Для «свежих» переносов срабатывает на 100%, но при одном условии — новая книга должна быть сохранена до пересоединения


    С уважением, Владимир

    Сообщение отредактировал v__stepВоскресенье, 20.11.2011, 11:46

     

    Ответить

    kissi80

    Дата: Понедельник, 21.11.2011, 07:20 |
    Сообщение № 12

    Группа: Пользователи

    Ранг: Новичок

    Сообщений: 16


    Репутация:

    0

    ±

    Замечаний:
    0% ±


    _Boroda_,
    Классно, спасибо

     

    Ответить

    kissi80

    Дата: Понедельник, 21.11.2011, 07:21 |
    Сообщение № 13

    Группа: Пользователи

    Ранг: Новичок

    Сообщений: 16


    Репутация:

    0

    ±

    Замечаний:
    0% ±


    KuklP, не совсем понял, какой пост…

     

    Ответить

    kissi80

    Дата: Понедельник, 21.11.2011, 07:24 |
    Сообщение № 14

    Группа: Пользователи

    Ранг: Новичок

    Сообщений: 16


    Репутация:

    0

    ±

    Замечаний:
    0% ±


    v__step, в том-то все и дело, что не 100 %.
    Поэтому и надо было механизм, который одинаково работает…
    Со временем проблем пока нет, всегда можно выкроить, да и сейчас доделывается система, которая будет на SQL, т.е. тут от Excel отойдем

     

    Ответить

    v__step

    Дата: Понедельник, 21.11.2011, 10:55 |
    Сообщение № 15

    Группа: Проверенные

    Ранг: Форумчанин

    Сообщений: 225


    Репутация:

    27

    ±

    Замечаний:
    0% ±


    Quote (kissi80)

    v__step, в том-то все и дело, что не 100 %.

    Был бы очень благодарен, если бы Вы привели живой пример такого сбоя
    Для меня это важно, т.к. я пользуюсь пересоединением связей не только вручную (очень часто), но и программно в Чистилке (выложил эту утилиту в разделе «Готовые решения» в сыром виде), и пока что не замечал сбоев
    Уже засомневался — только что проверил для разрушенной связи — сработало

    Может быть, названия листов в новой книге не соответствуют таким в старой? Это несложно проверить и исправить
    Возможно, речь идет о книге с уже существующими некорректными связями? А стоит ли с ней работать?


    С уважением, Владимир

    Сообщение отредактировал v__stepПонедельник, 21.11.2011, 12:36

     

    Ответить

    kissi80

    Дата: Понедельник, 21.11.2011, 12:35 |
    Сообщение № 16

    Группа: Пользователи

    Ранг: Новичок

    Сообщений: 16


    Репутация:

    0

    ±

    Замечаний:
    0% ±


    v__step, Не, не приведу…)))
    Я написал, что не 100%, поскольку при нескольких попытках (в разное время) слетали другие связи. Дело в том, что эти конкретные книги сейчас очень запутаны и тяжеловесны (напримр, 150 листов с перекрестными ссылками!!!). Поэтому мы сейчас все переводим на SQL, но пока не перешли, дорабатывать-то надо.
    Наверное все дело действительно в некорректных связях, которые накопились и мешают, но разбираться нет ни времени ни желания.

     

    Ответить

    v__step

    Дата: Понедельник, 21.11.2011, 12:50 |
    Сообщение № 17

    Группа: Проверенные

    Ранг: Форумчанин

    Сообщений: 225


    Репутация:

    27

    ±

    Замечаний:
    0% ±


    Мы постились одновременно — я подправил предыдущий пост
    Вы затрагиваете фундаментальный вопрос
    В Ваших книгах возможно наличие ссылок на другие листы (именно они виновники появления связей)
    Слава Богу, если это только ссылки ячеек
    Несоизмеримо сложнее дело обстоит с другими ссылками — именованных диапазонов, фигур, элементов из коллекции форм, диаграмм, условий проверок, OleСontrols (это не полный список)
    Любая из этих ссылок порождает связь
    Исправить их простой заменой немыслимо

    Пересоединение (не разрыв!!) решает многие вопросы одним махом (но, конечно, должны быть синхронизированы листы обеих книг по количеству и названиям, иначе получите сообщение о недопустимой внешней ссылке формулы, и правка связей не состоится — вероятнее всего, именно это и было причиной сбоя)
    О неудаче Excel, скорее всего сам сообщит
    В этом случае связи можно подлечить безупречной утилитой Билла Менвилла и повторить попытку


    С уважением, Владимир

    Сообщение отредактировал v__stepПонедельник, 21.11.2011, 16:40

     

    Ответить

    kissi80

    Дата: Понедельник, 21.11.2011, 13:38 |
    Сообщение № 18

    Группа: Пользователи

    Ранг: Новичок

    Сообщений: 16


    Репутация:

    0

    ±

    Замечаний:
    0% ±


    v__step, ok, попробую посмотреть…

     

    Ответить

    Spitsa

    Дата: Среда, 24.04.2013, 17:17 |
    Сообщение № 19

    Оригинальный выход http://baguzin.ru/wp/?p=4142&cpage=1#comment-1721. И простой.

     

    Ответить

    Serge_007

    Дата: Среда, 24.04.2013, 17:21 |
    Сообщение № 20

    Группа: Админы

    Ранг: Местный житель

    Сообщений: 15894


    Репутация:

    2623

    ±

    Замечаний:
    ±


    Excel 2016


    ЮMoney:41001419691823 | WMR:126292472390

     

    Ответить

    Скопировать лист с формулами из одной книги в другую

    Автор ATS, 08.08.2008, 10:00

    « назад — далее »

    Возникла проблема. Вроде должно быть простое решение, но никак не могу его найти..
    Есть книга с неким набором листов и формул в них. Есть лист СВОД, где по формулам, с использованием данных из других листов этой книги вычисляются итоговые цифры. Есть другая книга с идентичным набором листов и формул в них, только с разными исходными данными. Нужно скопировать в нее лист СВОД из первой книги со всеми формулами так, чтобы в этом листе вычислялись значения по данным из второй книги. Проблема в том, что при копировании листа, все формулы ссылаются на первую книгу. Можно было бы конечно все ссылки в формулах на первую книгу один раз исправить вручную, но если книг, куда нужно скопировать данный лист СВОД сотни, это становится настоящей проблемой..


    Формулы в листе свод надо менять.
    Один раз поменять и на всегда все будет работать так, как вам нужно.
    Для этого нужно использовать функцию ДВССЫЛ(), и еще иногда функцию ИНДЕКС.
    ДВССЫЛ() должна заменить все ссылки в формулах на листе СВОД, тогда при копировании в др. книгу формулы будут тянуть данные из листов новой книги.

    Подробнее с примером.


    А
    Правка — Специальная вставка — Формулы
    пробовали?

    (Добавлено.)
    Попробовал сам. Ёксель добавляет ссылку на исходную книгу и в этом случае.


    Цитата: Василий Алибабаевич от 08.08.2008, 10:18
    Формулы в листе свод надо менять.
    Один раз поменять и на всегда все будет работать так, как вам нужно.
    Для этого нужно использовать функцию и еще иногда функцию ИНДЕКС.
    ДВССЫЛ() должна заменить все ссылки в формулах на листе СВОД, тогда при копировании в др. книгу формулы будут тянуть данные из листов новой книги.

    Подробнее с примером.

    Не совсем понятно как применить функцию.
    В первой книге на листе СВОД есть множество формул вида =’Кальк’!P76, данные для вычисления которых берутся, в данном случае, соответственно из листа КАЛЬК той же книги. При копировании листа СВОД в другую книгу с аналогичными листами, получаем формулу ='[Экономическая часть по т.э.на 2009г со сводом.xls]Кальк’!P76, т.е. ссылку на первую книгу. Прошу на данном примере объяснить как нужно изменить первоначальную формулу, используя функцию ДВССЫЛ().


    Менять все формулы — занятие для мазохиста. Да и быстродействие сильно пострадает.
    Раз уж ёксель сверх меры услужлив, скопируем формулы сами.

    Sub ATS()
        Const WS_NAME = "Лист1"
        Const DST_NAME = "Книга2"
        Dim c As Range

        With Application
            .ScreenUpdating = False
            .Calculation = xlCalculationManual
        End With
        With Worksheets(WS_NAME)
            .Copy Before:=Workbooks(DST_NAME).Sheets(1)
            For Each c In .UsedRange.SpecialCells(xlCellTypeFormulas).Cells
                Cells(c.Row, c.Column).Formula = c.Formula
            Next
        End With
        With Application
            .Calculation = xlCalculationAutomatic
            .ScreenUpdating = True
        End With
    End Sub


    Если в исходной книге структура листов (имена листов) не совпадают с новой книгой, то в любом случае часть работы надо будет руками делать  ;D
    А если совпадает — то почему нельзя автоматизировать изменение всех связей в новой книге.  ???

    или я чего-й-то недопонял…


    Цитата: ДмиДми от 11.08.2008, 10:01
    Менять все формулы — занятие для мазохиста. Да и быстродействие сильно пострадает.
    Раз уж ёксель сверх меры услужлив, скопируем формулы сами.
    Sub ATS()
        Const WS_NAME = "Лист1"
        Const DST_NAME = "Книга2"
        Dim c As Range

        With Application
            .ScreenUpdating = False
            .Calculation = xlCalculationManual
        End With
        With Worksheets(WS_NAME)
            .Copy Before:=Workbooks(DST_NAME).Sheets(1)
            For Each c In .UsedRange.SpecialCells(xlCellTypeFormulas).Cells
                Cells(c.Row, c.Column).Formula = c.Formula
            Next
        End With
        With Application
            .Calculation = xlCalculationAutomatic
            .ScreenUpdating = True
        End With
    End Sub

    Вобщем-то работает. Осталось решить как применить этот макрос к любой книге, не вписывая постоянно вручную имя файла в константу DST_NAME


    Цитата: Василий Алибабаевич от 11.08.2008, 10:14
    Если в исходной книге структура листов (имена листов) не совпадают с новой книгой, то в любом случае часть работы надо будет руками делать  ;D
    А если совпадает — то почему нельзя автоматизировать изменение всех связей в новой книге.  ???

    или я чего-й-то недопонял…

    Это как, автоматизировать изменение всех связей в новой книге? Структура совпадает.


    Это наверное не ко мне, но я с близкой проблемой обращался и мне помогли — мне нужно было автоматизировать удаление всех связей.
    Думаю, что можно написать макрос, который бы все связи перекидывал на активную книгу.


    Цитата: Василий Алибабаевич от 12.08.2008, 13:24
    Это наверное не ко мне, но я с близкой проблемой обращался и мне помогли — мне нужно было автоматизировать удаление всех связей.
    Думаю, что можно написать макрос, который бы все связи перекидывал на активную книгу.

    Как в макросе обратиться к активной книге?


    ATS,
    не заглянуть ли Вам в

    Первые шаги

    ?

    P.S. Не знаю, лучшее ли это руководство, — просто не знаю в сети других адресованных начинающим.


    Час мучений и вот он, итоговый вариант, кому интересно :) :

    Sub ATS()

      Const WS_NAME = «СВОД»
      Dim c As Range
      Dim filename As String

              iOpen = Application.Dialogs(xlDialogOpen).Show
    filename = ActiveWindow.Caption
    If iOpen <> True Then
    MsgBox «Вы не выбрали книгу», , «»
    End If

    Windows(«Экономическая часть по т.э.на 2009г со сводом.xls»).Activate

        With Application
            .ScreenUpdating = False
            .Calculation = xlCalculationManual
        End With
        With Worksheets(WS_NAME)
            .Copy Before:=Workbooks(filename).Sheets(1)
            For Each c In .UsedRange.SpecialCells(xlCellTypeFormulas).Cells
                Cells(c.Row, c.Column).Formula = c.Formula
            Next
        End With
        With Application
            .Calculation = xlCalculationAutomatic
            .ScreenUpdating = True
        End With
    End Sub


    Неожиданно при копировании формул из книги в книгу (Правка — Специальная вставка — Формулы) обнаружил способ избавиться от связи с книгой-оригиналом.

    Правка — Связи… — кнопка Изменить, и привязываем к самой книге-копии. Связи исчезают.


    :D
    вот оно, то самое простое решение


    Пожалуйста, подскажи где найти искомое в Эксель 2007 ! Там введь нет меню Правка-Связи. Заранее спасибо


    Хоть и походит на некропостинг, но вдруг кому-то пригодится.
    В Excel 2007: данные — в подключениях «изменить связи» — изменить — и выбираете новую книгу.


    • Профессиональные приемы работы в Microsoft Excel

    • Обмен опытом

    • Microsoft Excel

    • Скопировать лист с формулами из одной книги в другую

    Простота этого вопроса на самом деле обманчива. Есть сразу несколько способов скопировать формулу в Excel, но есть и подводные камни, которые могут внести путаницу в ваши расчеты. По традиции, делюсь опытом внутри статьи.

    Рассмотрим на примерах популярные методы копирования формул, их плюсы и минусы.

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

    У нас есть список объектов, с определенными показателями по каждому. Нужно присвоить статус формулой в отдельном столбце.

    скопировать формулу в Excel

    Содержание

    • Самый популярный способ копировать. Автозаполнение
    • Как скопировать формулу в Excel? Перетаскиванием или растаскиванием
    • Копирование формулы простой вставкой и специальной вставкой
    • Копирование формул из другой книги
    • Как скопировать формулы, как текст
    • Похожие статьи

    Самый популярный способ копировать. Автозаполнение

    Запишем формулу в ячейку C2. Описание функции ЕСЛИ можно прочитать здесь.

    Копирование формул 44

    Понятно, что для каждого филиала писать отдельную формулу мы не будем. Как быстро продлить формулу?

    Если навести на границу ячейки в правый нижний угол, появится крест. Если сделать двойной щелчок, то формулы автоматически заполнятся до конца диапазона (до строки 12). Подробнее об этом читаем здесь.

    Очень удобно!

    Важное замечание. Такой способ работает только если в соседнем столбце, слева или справа, данные не прерываются. Т.е. если в строке 9 не будет данных, то диапазон заполнится только до 8 строки. Если у вас огромная таблица, нужно быть аккуратным и проверять автозаполнение!

    Как скопировать формулу в Excel? Перетаскиванием или растаскиванием

    Когда появился крестик (см. предыдущий пункт), вы можете потащить за него в любую сторону — формула будет копироваться. Применять это удобно, если вам не нужно копировать формулу до конца диапазона, а только на несколько ячеек или вбок.

    Еще один интересный способ —  так называемый, метод перетаскивания данных. Если вам нужно скопировать формулы из одной ячейки в другую — выделите ячейку, зажмите клавишу Ctrl — наведите на границу выделенной ячейки курсор (появиться маленький крестик) и зажмите левую кнопку мыши — теперь потяните в любую сторону, до нужной вам ячейки. Данные скопируются! Если в ячейке были формулы — они перенесутся.

    Копирование формулы простой вставкой и специальной вставкой

    Конечно, никто не отменял копирование данных стандартными способами:

    1. Выбрали данные — Правой кнопкой мыши — Копировать. Выбрали место для копирования — Правой кнопкой мыши — Вставить
    2. Выбрали данные — Ctrl + C. Выбрали место для копирования — Ctrl + V.

    Но при таком копировании переносится и оформление ячеек — цвет заливки, шрифт и т.д. Если вам нужно перенести в другую ячейку только формулу, воспользуйтесь специальной вставкой.

    Выделите данные Копировать — Выделите место куда копировать — кликаем правой кнопкой мыши — в открывшемся меню выбираем Специальная вставка — в окне ставим галочку «формулы» (показано на рисунке в начале статьи).

    Копирование формул из другой книги

    Нужно быть внимательным при копировании формул из другой книги, ведь при таком копировании в формулу добавляется и имя книги, на которую вы ссылаетесь.

    Копирование формул 5

    В данном случае Копирование формул.xlsx — название файла, квадратные скобки отделяют его от других частей ссылки. Чтобы удалить имя файла из формулы (т.е. сделать формулы только для этой книги), воспользуйтесь возможностью Найти и Заменить. Обращаю внимание, что заменять нужно именно фразу [Копирование формул.xlsx]

    Не забудьте также поменять название листа, если это необходимо.

    Как скопировать формулы, как текст

    Есть один интересный способ, как скопировать формулу в Excel как текст. Замените = в формулах на другой символ, например на /, формулы превратятся в обычный текст. Опять же это можно сделать инструментом Найти и Заменить.

    Получится вот так:

    Копирование формул 6

    Теперь данные из столбца C можно скопировать в любую книгу или лист, после чего заменить / обратно на =. Формулы перенесены!

    Кстати, чтобы посмотреть формулы записанные в ячейках, есть специальная функция — просмотр формул. Зайдите в меню Формулы на ленте инструментов — раздел Зависимости формул — кнопка Показать формулы.

    Копирование формул 7

    Есть вопрос — напишите комментарий! ;)

    Понравилась статья? Поделить с друзьями:

    А вот еще интересные статьи:

  • Копирование формулы excel 2010
  • Копирование формул со сдвигом ссылок excel
  • Копирование таблиц в microsoft excel
  • Копирование таблиц в excel с сохранением формул
  • Копирование таблиц в excel с сохранением размеров

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии