Здравствуйте, fedomax, Вы писали:
F>Я новичок в VB и у меня не работает код. Пишет ошибку №9(Subscript out of range). не могу понять как исправить.
F>Application.DisplayAlerts = False
F> Application.Workbooks.Open (path)
F> Application.ActiveWorkbooks(path).Sheets(1).Range("A1:H147").Copy 'пишет, что здесь ошибка
F> Application.Workbooks(ipath).Sheets(strNameSh).Range("A1:H147").Paste
F> Application.ActiveWorkbooks(path).Close
"Subscript out of range" означает, что ты обращаешься к несуществующему элементу коллекции или массиву. Какая коллекция или массив отвергает — это можно определить, упростив выражения в строке. И действовать по обстоятельствам.
Set a = Application.ActiveWorkbooks(path)
Set b = a.Sheets(1)
Set c = b.Range("A1:H147")
c.Copy
With Application.ActiveWorkbooks(path)
With .Sheets(1)
With .Range("A1:H147")
.Copy
End With
End With
End With
Скорее всего, сбивается первая коллекция. ЕМНИП, там нужно указывать просто имя файла, без пути.