Копировать книгу excel в другую книгу

Копировать книгу excel в другую книгу

200?’200px’:»+(this.scrollHeight+5)+’px’);»>
‘ работает при закрытой целевой книге
Sub Main()
Const strName As String = «1.xlsx»
Const strNameL As String = «смета»

Dim str1 As String

str1 = ThisWorkbook.Path & Application.PathSeparator
Workbooks.Open Filename:=str1 & strName

With Workbooks(strName)
ThisWorkbook.Sheets(strNameL).Copy Before:=.Sheets(1)
.Save
.Close 0
End With
End Sub

[/vba]
[p.s.]Если лист с именем есть, к нему цифра автоматом добавляется

200?’200px’:»+(this.scrollHeight+5)+’px’);»> Sub Макрос1()
Dim wb1 As Workbook, wb2 As Workbook, Mwb As Workbook, p$
Set Mwb = ThisWorkbook
p = Mwb.Path
Set wb1 = Workbooks.Open(p & «/» & «Книга1.xlsx»)
Set wb2 = Workbooks.Open(p & «/» & «Книга2.xlsx»)
wb1.Sheets(«Смета»).Copy Before:=wb2.Sheets(1)

wb1.Close False: wb2.Close True
End Sub

SLAVICK, Udik, благодарю вас.

У меня книга1 с поддержкой макросов (xlsm), а книга2 без макросов (xlsx)
Книга2 предназначена для отправки заказчикам.
Как только я отправил заказчику книгу2, мне нужно ее скопировать в книгу1 для разных доработок.
Т.е. я вызываю макрос с книги1 и смета копируется туда же где находится макрос.
Такое вообще возможно?

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

200?’200px’:»+(this.scrollHeight+5)+’px’);»> Sub Макрос1()
Dim wb1 As Workbook, wb2 As Workbook, Mwb As Workbook, p$
Set Mwb = ThisWorkbook
p = Mwb.Path
Set wb1 = Workbooks.Open(p & «/» & «Книга2.xlsx»)
wb1.Sheets(«Смета»).Copy Before:=Mwb.Sheets(1)

wb1.Close False
End Sub

В формате .xlsx нельзя хранить макросы.
Как вариант указать кнопке книгу 1. но тогда она «Запомнит» расположение файла, и будет всегда пытаться его открыть. именно из этой папки

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

Или вариант два:
Нужно открыть самостоятельно два файла и запустить макрос из Книга1.xlsm, который из открытой книги2.xlsx скопирует нужный лист.

Как перемещать и копировать листы или их данные в Excel

В этом курсе:

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

С помощью команды Переместить или скопировать лист можно полностью переместить или скопировать листы в пределах одной или нескольких книг. Чтобы переместить или скопировать часть данных на другие листы или в другие книги, можно использовать команды Вырезать и Копировать.

Перемещение листа в книге

Щелкните ярлычок листа и перетащите его в нужное место.

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

Копирование листа в одной книге

Удерживая нажатой клавишу CTRL, перетащите ярлычок листа на нужное место.

Щелкните ярлычок листа правой кнопкой мыши и выберите команду Переместить или скопировать.

Установите флажок Создать копию.

В разделе перед листом укажите, куда вы хотите поместить копию.

Нажмите кнопку ОК.

Если данные требуется переупорядочить, можно менять порядок листов в книге, а также копировать и перемещать листы в другие книги. Обратите внимание на то, что после перемещения листа в вычислениях и на диаграммах, в основе которых лежат содержащиеся на нем данные, могут использоваться неправильные значения.

Перемещение листа

Перетащите ярлычок листа в нужное место в строке ярлычков.

Копирование листа

Нажмите и удерживайте клавишу OPTION.

Читать еще:  Excel разница дат

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

Важно: Отпустите сначала кнопку мыши, а затем — клавишу OPTION.

Перемещение листа в другую книгу

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

Откройте книгу, в которую требуется переместить лист.

В меню Окно щелкните книгу, в которую входит перемещаемый лист.

Щелкните лист, который требуется скопировать в другую книгу.

В меню Правка выберите пункты Лист > Переместить или скопировать лист.

В меню В книгу выберите книгу, в которую требуется переместить лист.

Совет: Чтобы создать новую книгу и переместить в нее лист, выберите вариант новая книга.

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

Нажмите кнопку ОК.

Копирование листа в другую книгу

Откройте книгу, в которую требуется скопировать лист.

В меню Окно щелкните книгу, в которую входит копируемый лист.

Выберите лист, который требуется скопировать.

В меню Правка выберите пункты Лист > Переместить или скопировать лист.

В меню В книгу выберите книгу, в которую требуется скопировать лист.

Совет: Чтобы создать новую книгу и переместить в нее лист, выберите вариант новая книга.

В поле Перед листом выберите лист, перед которым нужно вставить скопированный лист, или вариант переместить в конец.

Установите флажок Создать копию.

Нажмите кнопку ОК.

Изменение цвета ярлычка листа

Изменение цвета ярлычков листов может облегчить отслеживание информации в больших книгах.

Удерживая клавишу CONTROL, щелкните ярлычок листа.

Выберите команду Цвет ярлычка и укажите нужный цвет.

В Excel Online вы можете дублировать (или скопировать) листы в текущей книге. Просто щелкните правой кнопкой мыши имя ярлычка в нижней части листа и выберите команду Дублировать.

Примечание: При дублировании листа, содержащего диаграмму, рисунок или фигуру, может появиться сообщение об ошибке. В этом случае лист можно продублировать вручную.

Если ваш лист содержит элементы, из-за которых его невозможно продублировать, можно создать его копию вручную, скопировав все данные и вставив их на новый лист. Вот как это сделать:

Выделите все данные на листе.

Сочетание клавиш: нажмите клавиши CTRL + ПРОБЕЛ, а затем нажмите клавиши Shift + пробел.

Скопируйте все данные на листе, нажав клавиши CTRL + C.

Щелкните знак плюса (+), чтобы добавить пустой лист.

Щелкните первую ячейку в новом листе и нажмите клавиши CTRL + V, чтобы вставить данные.

Примечание: При вставке ячеек на новый лист примененное к ним условное форматирование будет потеряно.

В Excel Online возможность переместить или скопировать лист недоступна, если щелкнуть правой кнопкой мыши ярлычок листа, который находится в классическом приложении Excel. В Excel Online вы можете добиться того же результата, скопировав все данные на листе и вставив его на пустой лист в другой книге.

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

Выделите все данные на листе.

Сочетание клавиш: нажмите клавиши CTRL + ПРОБЕЛ, а затем — клавиши Shift + пробел.

Скопируйте все данные на листе, нажав клавиши CTRL + C.

Откройте книгу, в которую необходимо вставить данные, и щелкните знак «плюс» (+) в строке состояния, чтобы добавить новый пустой лист.

Щелкните первую ячейку в новом листе, а затем нажмите клавиши CTRL + V, чтобы вставить данные на этот лист.

Читать еще:  Excel что это за программа

Примечание: При вставке ячеек в другую книгу примененное к ним условное форматирование будет потеряно.

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community, попросить помощи в сообществе Answers community, а также предложить новую функцию или улучшение на веб-сайте Excel User Voice.

Примечание: Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Была ли информация полезной? Для удобства также приводим ссылку на оригинал (на английском языке).

Как переместить и скопировать лист Excel в другую книгу

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

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

Перемещение и копирование листа Excel в другую книгу

Чтобы скопировать лист в Excel в другую книгу, откройте как минимум 2 файла. На одном из них выберите лист, который будем копировать в другой файл. Для этого:

  1. Щелчок правой кнопкой мышки по ярлычку листа вызываем контекстное меню.
  2. Выбираем опцию «Переместить или скопировать».
  3. 3 В появившимся диалоговом окне из выпадающего списка выбираем файл в который мы хотим скопировать лист. После чего нам доступен список его листов. Теперь мы имеем возможность указать, между какими листами вставить нашу копию. Отмечаем галочкой «Создать копию» и нажимаем OK.

Таким образом, нам удалось вставить лист из другой книги Excel (из другого файла).

Перемещение листа Excel в другую книгу выполняется аналогичным способом. Просто если не отметить галочкой «Создать копию», то после нажатия кнопки OK, лист не скопируется, а переместиться.

Как в Excel скопировать книгу

Иногда при работе с книгой Excel возникает необходимость скопировать или переместить лист в другую книгу или сделать копию листа в этой же книге. Например, Вы хотите что-то изменить, но при этом сохранить первоначальные листы.

Для начала мы покажем Вам, как скопировать лист из одной рабочей книги в другую существующую или вновь созданную книгу Excel. Кликните правой кнопкой мыши по ярлычку листа, который хотите скопировать, и в контекстном меню выберите Переместить или скопировать (Move or Copy).

В диалоговом окне Переместить или скопировать (Move or Copy) в выпадающем списке В книгу (To book) выберите рабочую книгу, в которую нужно скопировать лист.

Замечание: Чтобы скопировать выбранный лист в существующую рабочую книгу, эта книга должна быть открыта. Если нужная книга не открыта, то её не будет в выпадающем списке.

Мы собираемся скопировать выбранный лист в новую рабочую книгу, поэтому в выпадающем списке В книгу (To book) выбираем вариант Новая книга (New book). Ставим галочку в строке Создать копию (Create a copy). Поскольку мы создаём новую книгу, то в списке Перед листом (Before sheet) не будет других листов. Этот лист в новой рабочей книге будет единственным.

Замечание: Если Вы хотите переместить выбранный лист в другую рабочую книгу, то не ставьте галочку в строке Создать копию (Create a copy).

Вы также можете создать копию листа в той же рабочей книге. Такая необходимость может возникнуть, если Вы хотите внести изменения в лист, но при этом требуется сохранить первоначальный вариант. Как было описано ранее в этой статье, откройте диалоговое окно Переместить или скопировать (Move or Copy). По умолчанию в выпадающем списке В книгу (To book) выбрана текущая книга — оставьте это без изменения. В списке Перед листом (Before sheet) выберите лист, перед которым хотите вставить скопированный лист. Мы решили вставить копию нашего листа в самый конец книги после всех существующих листов. Отметьте галочкой параметр Создать копию (Create a copy) и нажмите ОК.

Читать еще:  Картинка эксель

Лист будет вставлен и его ярлычок появится справа от ярлычков существующих листов.

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

Урок подготовлен для Вас командой сайта office-guru.ru Источник: http://www.howtogeek.com/220677/how-to-copy-or-move-a-worksheet-into-another-workbook-in-excel/ Перевел: Андрей Антонов Правила перепечатки Еще больше уроков по Microsoft Excel

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

Программа слегка специфична. Она копирует выбранные компоненты VBA проекта из выбранных книг в одну книгу. При этом, если у Вас на какой-либо из выбранных книг установлен пароль на VBA проект — то программа предложить его ввести и в случае правильного пароля скопирует компоненты и продолжит работу.

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

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

Очистить все — удаляет из списка все файлы. Ничего отмечать не надо. Сами файлы не удаляются.

  1. Выбираете файлы в список «Из каких файлов добавить».
  2. Выбираете файл, в который все это копировать(«В какой файл копировать»).
  3. Выбираете компоненты для копирования: Стандартные модули, Модули класса или Пользовательские формы.

Сюда не включены компоненты классов ЭтаКнига (ThisWorkbook) и Листов (Worksheets), т.к. при копировании они будут скопированы либо как модули классов, либо в модули аналогичных листов. Т.к. ни первый ни второй вариант не показались мне практичным — я решил исключить эти компоненты из списка. Есть мысли как это сделать — но это может быть появится в следующей версии программы. Если у кого-то есть какие-то предложения по усовершенствованию — пишите на эл.адрес, указанный в программе(«О программе. «)

Если в процессе копирования, программа обнаружит, что VBA проект защищен паролем — то появиться такая форма:

Вам надо будет указать пароль к проекту, после чего программа сама впишет пароль, откроет проект и скопирует указанные компоненты.

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

Стоит обратить внимание, что при появлении формы ввода пароля начинается обратный отсчет времени(60 сек). По истечении этого времени форма закроется и запароленная книга будет пропущена и компоненты из неё не будут скопированы. Это сделано для того, чтобы если Вы запустили программу и ушли, то она смогла отработать и закрыться без Вашего участия. Если для того, чтобы вспомнить(или найти) нужный пароль Вам потребуется времени больше, чем 60 сек, то надо установить флажок — «Введу пароль позже(остановка таймера отмены)«. Отсчет будет остановлен.

Copy_VBAProject_Components.zip (267,7 KiB, 4 775 скачиваний)

Внимание: программа распространяется бесплатно. Распространение данной программы в коммерческих целях запрещено.

Похожие статьи

Ссылка на основную публикацию
Похожие публикации
×
×
Adblock
detector