Добрый День! Друзья) есть код копирования данных с лита одной книги в лист другой книги. Вопрос, который мучает меня и на, который ищу ответ: "Если эти обе книги лежат в одной папке, то как написать без указания пути?" Я про то что возьму я перенесу эту папку на другой компьютер на другой локал.диск и чтобы не прописывать снова путь к папке. Файлы (2 книги) всегда будут лежать в одной папке) Спасибо!
Код
Sub Macro1()
Range ("A:J").Select
'Sheets("Лист1").Range("A:J").SpecialCells(2).Copy
Selection.Copy
ChDir "C:\User\Copy"
Workbooks.Open FileName:="Top2.xlsb"
Range "A1".Select
ActiveSheet.Paste
ActiveWorkbook.Save
ActiveWorkbook.Clouse
End Sub
Возникла проблемы если нахожусь на листе ("Fact") куда нужно вставить данные все работает, если стою на другом листе книги и запускаю макрос выдает ошибку и ссылает на 5 строчку, В чем проблема не могу понять вроде все так((( Активирую книгу, указываю какой лист надо, а все равно косяк(
Код
Sub CopyFact
Workbooks.Open ThisWorkbook.Path & Application.PathSeparator & "Value.xlsb"
Workbooks("Value.xlsb").worksheets ("Fact").Range ("A:J").Copy
Workbooks("Цели.xlsb").Activate
ActiveWorkbook.WorkSheets("Fact").Range ("A1").Select
ActiveSheet.Paste
Workbooks ("Value.xlsb").Close
End Sub
И ещё - если вдруг (а такое бывает!) код в персональной книге макросов, то использовать ThisWorkbook.Path практически никогда не нужно Не потому что можно обойтись, а потому что с тем каталогом никто не работает.
Hugo, В одну строчку сделать всю операцию!) Я в восторге. Спасибо!) Добавил только Workbooks .Close, что не оставаться на книге с которой стянул данные) И спасибо за ответ по поводу активации листа, тоже проверил работает) Еще раз спасибо)
Интересное явление наблюдаю) Если на запуск макроса пример, которого привел Hugo, использовать кнопку (Элемент ActiveX), то он все копирует но только при этом создается новая книга к примеру книга4 и.т.д при каждом запуске))))) Если использую элемент управления формы обычную кнопочку, то все хорошо) а так же если без кнопок, то тоже все норм)