У меня проблема с макросом, при запуске он останавливается при открытии исходного файла (на первом листе - со второго листа следует скопировать 3 диапазона данных). Пока он работает в режиме отладки, он работает правильно, шаг за шагом.
Я новичок в VBA и не могу найти ошибку в коде. Спасибо за помощь!
У меня была проблема с проверкой, лист «Сводка» уже существует, но я решил эту проблему с помощью функции, и она работает в настоящее время.
ОБНОВЛЕНИЕ : Когда открыт исходный файл (из которого должны быть скопированы данные), макрос запускается с помощью ярлыка, но он должен открыть файл, скопировать диапазоны, вставить его на лист назначения. Если исходный файл выбран из всплывающего окна, запускаемого макросом, он открывается и макрос останавливается без копирования и вставки.
If Not sheet_exists("Summary") Then
ThisWorkbook.Sheets.Add( _
After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)).Name = _
"Summary"
End If
Filename = Application.GetOpenFilename(FileFilter:="Excel Files (*.xls*), *.xls*", Title:="Select an Inbound Report File")
Set SrcWbk = Workbooks.Open(Filename)
Worksheets("Summary").Activate
SrcWbk.Sheets("Summary").Range("A:W").Copy DestWbk.Sheets("Summary").Range("A:W")
SrcWbk.Close False
DestWbk.Sheets("Summary").Range("A9:F9", Range("A9:F9").End(xlDown)).Copy
Sheets("Current Receipt On Stock").Select
Range("E2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Summary").Select
DestWbk.Sheets("Summary").Range("G9:H9", Range("G9:H9").End(xlDown)).Copy
Sheets("Current Receipt On Stock").Select
Range("L2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Summary").Select
DestWbk.Sheets("Summary").Range("I9:W9", Range("I9:W9").End(xlDown)).Copy
Sheets("Current Receipt On Stock").Select
Range("P2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.DisplayAlerts = False
Sheets("Summary").Delete
Application.DisplayAlerts = True
Sheets("Current Receipt On Stock").Range("E2").Select