2015-07-20 1 views
0

У меня есть код ниже, он работает нормально, но на полпути через него он останавливается и перезапускается, когда я отлаживаю код.Перезапуск VBA-кода на полпути без сообщения об ошибке

Когда он перезагружается, не отображается сообщение об ошибке. Кто-нибудь знает, почему мой код это делает?

Благодаря SB

Sub ExportPICs() 

If FileIsOpen("U:\FBS\PROJECTS_TEAM\MI\Sean's Projects\PICS and Benefits\Pics & Benefits upload file.xlsm") Then 
    MsgBox "That file's open, or doesn't exist - do something else." 
    Exit Sub 
    End If 

Sheets("Post Implementation Costs").Visible = True 
Sheets("Post Implementation Costs").Activate 
Sheets("Post Implementation Costs").Unprotect Password:="Projects123" 

Dim Tracker As String 
Tracker = ThisWorkbook.Name 

Dim wkbk As Excel.Workbook 
Set wkbk = Workbooks.Open(Filename:= _ 
"U:\FBS\PROJECTS_TEAM\MI\Sean's Projects\PICS and Benefits\Pics & Benefits upload file.xlsm") '***********CODE RESTARTS HERE WITHOUT ERROR MESSAGE 

Dim pics As String 
pics = Dir("U:\FBS\PROJECTS_TEAM\MI\Sean's Projects\PICS and Benefits\Pics & Benefits upload file.xlsm") 


Workbooks(Tracker).Activate 
Sheets("Post Implementation Costs").Activate 

Dim rng As Range 
Dim CountTrue As Long 
Set rng = Range("D16:D100") 
CountTrue = Application.WorksheetFunction.CountIf(rng, "PIC") 

If CountTrue > 0 Then 
Rows("19:" & (CountTrue + 18)).EntireRow.Copy 
End If 

End Sub 
+1

Если их какой-либо код в открытом событии Pics & Benefits загружает файл.xlsm? – 99moorem

+0

В настоящее время макрос не загружается «Pics & Benefits upload file.xlsm». –

+0

Как вы запускаете этот код? – Rory

ответ

0

Если у вас есть какой-либо код в открывшемся событии Workbook в «Pics & Преимущества upload file.xlsm», который сделает Loop.

Попробуйте Application.EnableEvents = False

Befor

Dim wkbk As Excel.Workbook 
Set wkbk = Workbooks.Open(Filename:= _ 
"U:\FBS\PROJECTS_TEAM\MI\Sean's Projects\PICS and Benefits\Pics & Benefits upload file.xlsm") 

и после этого вы можете активировать его снова.

Application.EnableEvents = True

Этот код останавливает обработчики событий Excel от вызова. Установка его на значение false обычно выполняется, потому что эффект обработчика события нежелателен или предотвращает бесконечный цикл.

+0

У меня есть открытый событие рабочей книги в файле, который запускает макрос, но не в рабочей книге, которую я открываю с помощью этой строки кода. К сожалению, строка обработчика событий не работала :( –

+0

Я работал немного адаптировал ваше решение и разместил Application.EnableEvents = False Внутри макроса, хранящегося на второй странице, это решило проблему благодаря вашей помощи! –

0

Я обнаружил также, что с некоторыми заявлениями команда Step не шаг, но позволяет все следующий код запуска. Чтобы этого избежать, установите точку останова в строке, следующей за тем, где шаг запутался.

+0

Как странно, что казалось работать :) Мое знание контрольных точек ограничено, есть ли способ сделать их постоянными, когда я закрываю файл и повторно -откройте его, точка останова исчезнет, ​​и, следовательно, проблема снова появится. –

+0

Вы можете использовать оператор «Стоп» – Moosli

+0

Спасибо, мой макрос защищен паролем, хотя :(есть в любом случае обойти это, используя оператор остановки и перезапуск Macro без моих коллег, входящих в модуль. –