Доброго времени суток. Возник вопрос. Имеются 2 книги эксель. Обе книги одинаковые по способу заполнения. Книга 1 более ранний версии. Книга 2 боле поздней версии. Листы и ячейки которые необходимо скопировать (импортировать) в обеих книгах одинаковые. Наименования листов в книгах одинаковые. Расположение ячеек на листах одинаковые.
Вопрос такой: При открытой книги 2, необходимо вызвать диалоговое окно, для выбора книги (в данном случае книга 1), и после выбора, перенести данные с 4-6-ти определенных листов по тем же самым "координатам".
Использовал вот такой код.....но почему то пишет "нет такого листа". (в макросах не силен....только разбираюсь)...помогите пожалуйста...
код:
Вопрос такой: При открытой книги 2, необходимо вызвать диалоговое окно, для выбора книги (в данном случае книга 1), и после выбора, перенести данные с 4-6-ти определенных листов по тем же самым "координатам".
Использовал вот такой код.....но почему то пишет "нет такого листа". (в макросах не силен....только разбираюсь)...помогите пожалуйста...
код:
Код |
---|
Function GetFileName(Optional ByVal Title As String) If Not IsMissing(InitialPath) Then On Error Resume Next: ChDrive Left(InitialPath, 1) ChDir InitialPath ' выбираем стартовую папку End If res = Application.GetOpenFilename(MyFilter, , Title, "Открыть") ' вывод диалогового окна GetFileName = IIf(VarType(res) = vbBoolean, "", res) ' пустая строка при отказе от выбора End Function Sub AttachFile_test() ' пример использования Application.ScreenUpdating = False Filename$ = GetFileName If Filename$ = "" Then Exit Sub ' MsgBox "Выбран файл: " & Filename$ On Error Resume Next Set sh = ThisWorkbook.Sheets(Application.Caller) If Err <> 0 Then MsgBox "Нет такого листа": Exit Sub On Error GoTo 0 Set openWb = Workbooks.Open(Filename$) sh.UsedRange.Clear openWb.ActiveSheet.UsedRange.Copy sh.[a1] openWb.Close False Application.ScreenUpdating = True End Sub |