Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Нужна подсказка по макросу копирования
 
Доброй ночи форумчане! Не могу понять как правильно под себя адаптировать макрос копирования данных из одной книги в другую, 2 книги с исходными данными и 1 книга которая принимает эти данные, сделал ссылки но нужно чтобы папку можно было копировать с компьютера на компьютера без потери связей.
Макрос взял из предыдущего топика, 3 часа бился чтобы он заработал так и не получилось.


Код
Sub Macro1()
     Range ("J1:L1").Select
     'Sheets("Лист1").Range("B2:D2").SpecialCells(2).Copy
     Selection.Copy
     ChDir "C:\User\Copy"
     Workbooks.Open ThisWorkbook.Path & application.pathseparator & "ДОХОДЫ.xlsm"
     Range "A1".Select
     ActiveSheet.Paste
     ActiveWorkbook.Save
     ActiveWorkbook.Close
End Sub
Sub Macro2()
     Range ("B1:D1").Select
     'Sheets("Сводная расходы").Range("B3:D3").SpecialCells(2).Copy
     Selection.Copy
     ChDir "C:\User\Copy"
     Workbooks.Open ThisWorkbook.Path & application.pathseparator & "РАСХОДЫ.xlsm"
     Range "A1".Select
     ActiveSheet.Paste
     ActiveWorkbook.Save
     ActiveWorkbook.Close
End Sub
Изменено: hirurg087 - 17 Фев 2017 07:47:30
 
hirurg087, Вы видели, как у других выглядит код? Вот и Вы оформляйте его тегом: ищите такую кнопку <...> и исправьте своё сообщение.
 
Опять пробовал, не получается, что я не так делают?
 
Вот в этом топике данная проблема решена, не понимаю как?http://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=1&TID=88207&TITLE_SEO=8820...
 
Что конкретно не работает?
Начнём с малого: что такое Clouse? Может Close?
 
Не работает копирование с одной книги в другую, вот выделяется красным
Код
Range "A1".Select
 
Код
Range("A1").Select

Но можно и без выделения:
Код
Range("A1").copy

 
hirurg087,Наверное потому что у вас ошибка в синтаксисе ? ведь правильно пишется
Код
Range("A1").Select
 
 Я ячейки от куда копировать и куда копировать правильно указал?
 
Я с макросами первый раз столкнулся, это не так просто как кажется на первый взгляд.
 
См. #7 и #8
 
Что-то с строками  #7 и #8, в чем может быт проблема.  
 
почему то вспомнилась эта тема...
Не седьмая и восьмая строка в вашем коде, а седьмое и восьмое сообщение в этой теме.
 
Я так-то не туплю.
 
Когда каждый день на форуме, то как рыба в воде, я тут 4 раз и пока изучает как это работает.
 
Цитата
hirurg087 написал: Я так-то не туплю.
А это что? ))
Цитата
hirurg087 написал: Что-то с строками  #7 и #8,
В правом верхнем углу каждого сообщения есть его номер (#)
 
hirurg087, ну хватит уже хныкать - скобки добавили?
 
Вот что выдает, подскажите темному, что не так.
Ошибка.png (69.21 КБ)
 
hirurg087, Вы читаете, что Вам пишут? Посмотрите сообщения НОМЕР 7 и НОМЕР 8.
 
Я прочитал и сделал так же как сказали.
Ошибка.png (71.27 КБ)
 
Отлично, теперь заработало?
кстати, если память не изменяет, то без проверки wb.open будет выдавать ошибку(или предупреждение) при открытии уже открытого документа...
Изменено: heso - 17 Фев 2017 08:24:46
 
Нет
 
Вот теперь вижу )
 
Цитата
hirurg087 написал:
Нет
Если что-то не работает, сразу пишите в какой строке ошибку выдает и что пишет.
 
hirurg087, я сейчас закрою тему - Ваши сообщения НИ О ЧЁМ!
 
В теме которую указали выше, действительно мне помогли люди добрые!
Код
Sub Macro1() 
 Range ("J1:L1").Select 
 Selection.Copy 
 Workbooks.Open ThisWorkbook.Path & application.pathseparator & "ДОХОДЫ.xlsm" 
 Range ("A1").Select 
 ActiveSheet.Paste 
 ActiveWorkbook.Save 
 ActiveWorkbook.Close 
End Sub
Либо:
Код
Sub Macro1() 
     Workbooks.Open ThisWorkbook.Path & application.pathseparator & "Книга_2.xlsm"
     Workbooks("Книга_2.xlsm").worksheets("Имя_Вашего_Листа").Range("J:L").Copy Workbooks("Книга_1.xlsb").WorkSheets("Имя_Вашего_Листа").Range("A1") 
End Sub

Изменено: Dotodot500 - 17 Фев 2017 10:52:50
 
Либо
Код
Sub Macro1() 
    with Workbooks.Open ThisWorkbook.Path & application.pathseparator & "Книга_2.xlsm"
     .worksheets("Имя_Вашего_Листа").Range("J:L").Copy Workbooks("Книга_1.xlsb").WorkSheets("Имя_Вашего_Листа").Range("A1") 
.close 0
end with
End Sub
Изменено: Hugo - 17 Фев 2017 11:25:00
 
Нужно бы название откорректировать.
Копировать чего? Для чего?
 
Задача решена, вопрос закрыт
Страницы: 1
Читают тему (гостей: 1)
Наверх