Здравствуйте, пользователи форума. Пытаюсь написать макрос, для копирования данных из одной книги в другую
Код
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"
все же открывает файл. После всех дел не мешало бы его закрыть:
Код
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
изменил кодовые имена всех листов, а точнее их 40, в которых написаны макросы на изменение имени листа(1 -> 2 -> 3;если поменять 1 на 100, то 100 -> 101 -> 102), но это все равно не помогло, когда меняю имя листа на кодовое имя(на англ) листа, все также вылезает ошибка
или может быть можно присвоить всем листам переменные? и вместо листов писать переменные
Цитата
Mershik написал: а положение меняется? если нет то воспользуйтесь советом
Нет ничего не меняется, меняется только название листа постоянно, при работе, каким советом?