Добрый день. Помогите написать макрос. Задача следующая: - имеется 2 файла в папке - открываем 2 файла; - теперь нужно с одного файла, где будет установлена кнопка макроса "копировать", скопировать лист на другой открытый файл под названием "Общие файлы".
Кратко говоря, мне нужно скопировать лист с одной книги на другую, но только процесс должен происходить в этой же папке. Все это для того, чтобы я мог скопировать данные файлы в другую папку и там же совершить такое же действие без указания полного пути к файлу.
Думаю файлы для примеров тут не нужны.
Добрый день. Помогите написать макрос. Задача следующая: - имеется 2 файла в папке - открываем 2 файла; - теперь нужно с одного файла, где будет установлена кнопка макроса "копировать", скопировать лист на другой открытый файл под названием "Общие файлы".
Кратко говоря, мне нужно скопировать лист с одной книги на другую, но только процесс должен происходить в этой же папке. Все это для того, чтобы я мог скопировать данные файлы в другую папку и там же совершить такое же действие без указания полного пути к файлу.
Вот Макрос в книге "Главная" Копирует лист "Смета" из книги1 в книгу2 Книги переименуйте как Вам нужно [vba]
Код
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
[/vba]
Вот Макрос в книге "Главная" Копирует лист "Смета" из книги1 в книгу2 Книги переименуйте как Вам нужно [vba]
Код
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)
У меня книга1 с поддержкой макросов (xlsm), а книга2 без макросов (xlsx) Книга2 предназначена для отправки заказчикам. Как только я отправил заказчику книгу2, мне нужно ее скопировать в книгу1 для разных доработок. Т.е. я вызываю макрос с книги1 и смета копируется туда же где находится макрос. Такое вообще возможно?
SLAVICK, Udik, благодарю вас.
У меня книга1 с поддержкой макросов (xlsm), а книга2 без макросов (xlsx) Книга2 предназначена для отправки заказчикам. Как только я отправил заказчику книгу2, мне нужно ее скопировать в книгу1 для разных доработок. Т.е. я вызываю макрос с книги1 и смета копируется туда же где находится макрос. Такое вообще возможно?den45444
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
[/vba]
Так?
[vba]
Код
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)
SLAVICK, почти так, но кнопка должна быть в книге2.xlsx Эта кнопка должна вызывать макрос с книги1 и копировать лист туда же где находится макрос.
SLAVICK, почти так, но кнопка должна быть в книге2.xlsx Эта кнопка должна вызывать макрос с книги1 и копировать лист туда же где находится макрос.den45444
SLAVICK, почти так, но кнопка должна быть в книге2.xlsx
В формате .xlsx нельзя хранить макросы. Как вариант указать кнопке книгу 1... но тогда она "Запомнит" расположение файла, и будет всегда пытаться его открыть... именно из этой папки
Поэтому нужно указывать ссылку на файл с макросом(третий файл ), который всегда будет лежать в одном месте(например личная книга макросов), и менять макрос, чтобы смотрел путь не к своей папке, а к книге, из которой его вызвали... но помойму это уже другой вопрос - другая тема
Или вариант два: Нужно открыть самостоятельно два файла и запустить макрос из Книга1.xlsm, который из открытой книги2.xlsx скопирует нужный лист.
SLAVICK, почти так, но кнопка должна быть в книге2.xlsx
В формате .xlsx нельзя хранить макросы. Как вариант указать кнопке книгу 1... но тогда она "Запомнит" расположение файла, и будет всегда пытаться его открыть... именно из этой папки
Поэтому нужно указывать ссылку на файл с макросом(третий файл ), который всегда будет лежать в одном месте(например личная книга макросов), и менять макрос, чтобы смотрел путь не к своей папке, а к книге, из которой его вызвали... но помойму это уже другой вопрос - другая тема
Или вариант два: Нужно открыть самостоятельно два файла и запустить макрос из Книга1.xlsm, который из открытой книги2.xlsx скопирует нужный лист. SLAVICK
Иногда все проще чем кажется с первого взгляда.
Сообщение отредактировал SLAVICK - Четверг, 30.07.2015, 15:05
а код копии листа из Сметный расчет.xlsx в ГЛАВНАЯ.xlsm, для файла с макросом
А если книга Сметный расчет меняет свое название? Нельзя ли скопировать лист открытого файла? т.е. я могу изменить название сметного расчета и тогда макрос не найдет данный файл. Нельзя ли указать какую-либо связь между ними?
а код копии листа из Сметный расчет.xlsx в ГЛАВНАЯ.xlsm, для файла с макросом
А если книга Сметный расчет меняет свое название? Нельзя ли скопировать лист открытого файла? т.е. я могу изменить название сметного расчета и тогда макрос не найдет данный файл. Нельзя ли указать какую-либо связь между ними?den45444
Хорошо. Допустим я сохранил в xlms. Открываю его. Как же теперь с этого файла скопировать в другую книгу, но при этом не указывать в макросе название этого файла, потому что название файла может изменится.
Хорошо. Допустим я сохранил в xlms. Открываю его. Как же теперь с этого файла скопировать в другую книгу, но при этом не указывать в макросе название этого файла, потому что название файла может изменится.den45444
а если название листа сменится? Как вариант можно завести лист и прописывать названия в нём, либо ещё каким способом давать проге знать, какой файл надо открыть.
а если название листа сменится? Как вариант можно завести лист и прописывать названия в нём, либо ещё каким способом давать проге знать, какой файл надо открыть.Udik
вот вам барабан яд 41001231307558 wm R419131876897 udik1968@gmail.com
Udik, А нельзя так: Открыл файл с которого нужно скопировать и прописать макрос, чтобы он копировал лист с той книги где запускается макрос. А место куда копировать указать например "главная". Получится так?
Udik, А нельзя так: Открыл файл с которого нужно скопировать и прописать макрос, чтобы он копировал лист с той книги где запускается макрос. А место куда копировать указать например "главная". Получится так?den45444
Вы ж говорите, что макросы только в одном разрешены. И проблема смены имени файла остаётся. Хотя её легко обойти - сохраните целевой файл с нужным именем, а после обработки сохраните под новым.
Вы ж говорите, что макросы только в одном разрешены. И проблема смены имени файла остаётся. Хотя её легко обойти - сохраните целевой файл с нужным именем, а после обработки сохраните под новым.Udik
вот вам барабан яд 41001231307558 wm R419131876897 udik1968@gmail.com