Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Написание макроса, для переноса данных из одной книги в другую и заполнение ячейки случайным образом
 
Здравствуйте, пользователи форума.
Пытаюсь написать макрос, для копирования данных из одной книги в другую
Код
Sub auto()
Dim r, p, a As String

r = "Путь к файлу" \\ изменил из за конфиденциальности
p = ThisWorkbook.Name
a = Dir(r)
GetObject (r)
Workbooks(p).Worksheets("1").Range("D31") = Workbooks(a).Worksheets("октябрь").Range("B4").Value
Workbooks(p).Worksheets("1").Range("D32") = Workbooks(a).Worksheets("октябрь").Range("B5").Value
Workbooks(p).Worksheets("1").Range("D33") = Workbooks(a).Worksheets("октябрь").Range("B6").Value
Workbooks(p).Worksheets("1").Range("I31") = Workbooks(a).Worksheets("октябрь").Range("C4").Value
Workbooks(p).Worksheets("1").Range("I32") = Workbooks(a).Worksheets("октябрь").Range("C5").Value
Workbooks(p).Worksheets("1").Range("I33") = Workbooks(a).Worksheets("октябрь").Range("C6").Value


End Sub

Только вот проблема с тем что, я написал лист с названием "1", но у этого листа всегда изменяется имя при работе с документом(это нужно для работы).
И если я заменяю "1" на "Лист1", пишет - "Run-time error '9': Subscript out of range"
Изменено: restor38ru - 25 сен 2020 14:56:22
 
Цитата
restor38ru написал:
Пытаюсь написать макросы
а где хоть один или попытки?
Цитата
restor38ru написал:
есть Книга
у нас нет.
Цитата
restor38ru написал:
как переносить данные с помощью макроса из одной книги в другую?
ну пишите макрос и он это делает - только уточните о ПЕРЕНОСЕ вы говорите или все же КОПИРОВАНИИ - так как это 2 разные вещи. А вообще у вас нет гугла/яндекса ? Первые попавшиеся:
https://www.cyberforum.ru/vba/thread2194254.html
https://sirexcel.ru/makrosi_vba/kak_skopirovat_dannie_iz_odnoi_knigi_v_druguy­u/
https://exceltable.com/formatirovanie/perenos-dannyh-iz-tablicy
https://www.excel-vba.ru/forum/index.php?topic=1095.0

и самое главное ОДНА ТЕМА ОДИН ВОПРОС (такие правила форума они ТУТ, там и файле примере и о желаемом результате)
Не бойтесь совершенства. Вам его не достичь.
 
Цитата
Mershik написал:
а где хоть один или попытки?
Изменил описание, помогите пожалуйста
 
Цитата
restor38ru написал:
я написал лист с названием "1",
если это крайний слева лист, то можно Worksheets(1) (1 без кавычек)- тогда имя листа значения не имеет.
 
Цитата
restor38ru написал:
у этого листа всегда изменяется имя при работе
а положение меняется? если нет то воспользуйтесь советом
Цитата
Михаил Витальевич С. написал:
Worksheets(1) (1 без кавычек)- тогда имя листа значения не имеет.
это порядок расположения листов 1 самый левый и так далее
Изменено: Mershik - 25 сен 2020 16:15:31
Не бойтесь совершенства. Вам его не достичь.
 
Цитата
restor38ru написал:
GetObject ®
все же открывает файл. После всех дел не мешало бы его закрыть:
Код
Workbooks(a).Close 0
плюс код может быть значительно короче:
Код
Sub auto()
Dim r, p, a As String
 
r = "Путь к файлу" \\ изменил из за конфиденциальности
a = Dir(r)
GetObject (r)
ThisWorkbook.Worksheets(1).Range("D31").Resize(3).Value = Workbooks(a).Worksheets("октябрь").Range("B4").Resize(3).Value
ThisWorkbook.Worksheets(1).Range("I31").Resize(3).Value = Workbooks(a).Worksheets("октябрь").Range("C4").Resize(3).Value
Workbooks(a).Close 0 
End Sub
А также, если лист, в который копируются данные не может быть удален(но может быть перемещен и переименован), можно использовать его кодовое имя: Кодовое имя листа - что это и зачем нужно? Какие плюсы и минусы?
Изменено: Дмитрий(The_Prist) Щербаков - 25 сен 2020 16:26:37
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
изменил кодовые имена всех листов, а точнее их 40, в которых написаны макросы на изменение имени листа(1 -> 2 -> 3;если поменять 1 на 100, то 100 -> 101 -> 102), но это все равно не помогло, когда меняю имя листа на кодовое имя(на англ) листа, все также вылезает ошибка

или может быть можно присвоить всем листам переменные? и вместо листов писать переменные

Цитата
Mershik написал: а положение меняется? если нет то воспользуйтесь советом
Нет ничего не меняется, меняется только название листа постоянно, при работе, каким советом?
 
Тема закрыта, я справился, спасибо всем большое!
Изменено: restor38ru - 26 сен 2020 09:19:42
Страницы: 1
Читают тему (гостей: 1)
Наверх