2016-10-31 5 views
0

Я разработал макрос, который отлично работает на моем компьютере. Но когда у меня есть конечный пользователь, запускающий макрос на своем компьютере, он продолжает ломаться в одной строке кода, даже если нет точки останова. Соответствующий код приведен ниже:Макроостановка без точки останова

Function MMFProcessor(Source_Folder_Str As String, Input_File_Name As String, Output_Sheet As Worksheet, NPU As String, Prods As String, sw As StatWin, _ 
    Processed_Members_Str As String, MbrRow_Dict() As String, FlgMeas() As String, Output_Sheet_Row As Long, Output_Mbr_Key_Col As String, Output_Name As String, _ 
    Optional Ambetter As Boolean = False) As Variant() 
' 
Dim Source_WB As Workbook 
Set Source_WB = Workbooks.Open(Source_Folder_Str & "\" & Input_File_Name & ".xlsx", , True) 
Dim Input_Mbr_Key_Col As String 
Dim Input_Product_Col As String 
Dim Input_SubMsr_Col As String 
Dim ret As Boolean 
ret = True 
Dim Return_Array(4) As Variant 
Dim Found As Boolean 
Dim Source_Col_Nbr As Integer 
Dim NumerCnt_Col As String 
Dim SourceFile_Col_Cnt As Long 
SourceFile_Col_Cnt = Count_Columns(Source_WB.Worksheets(1)) 
Dim Col_Str As String 

'Set/Reset sw.Input_Sorted 
sw.Input_Sorted = False '*****THIS IS THE LINE THAT CATCHES********* 

If sw.Detailed_Log Then 
    Call Update("Starting MMFProcessor. Inputs: Source_Folder_Str= " & Source_Folder_Str & "; Input_File_Name= '" & Input_File_Name & "'; Output_Sheet= '" & Output_Sheet.Name & _ 
     "'; Output_Sheet_Row= '" & Output_Sheet_Row & "'; Mbr_Key_Col= '" & Output_Mbr_Key_Col & "'; Output_Name= '" & Output_Name & "'", 0, sw) 
End If 

Stat_Win обычай форма, которую я поставил вместе, чтобы служить в качестве окна статуса для макроса. Переменная Input_Sorted существует и является булевым. Другой человек, выполняющий макрос, имеет ту же версию Excel, права доступа к используемым папкам и в основном то же самое в любом отношении, о котором я могу думать.

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

+0

Как прорывается код? Открывает ли окно VBA и выделяет желтую линию? Или вы видите окно продолжения/отладки? –

+0

Возможно, исправленное исправление работает. Код не выдавал подсказку break, просто останавливая и выделяя код так, как если бы вы уже попали в Debug. Я пошел вперед, и мой пользователь использовал Ctrl + Break дважды в любом случае, и код работает до сих пор, но этот раздел кода попадает по крайней мере в десятки раз, так что еще есть время, чтобы что-то сходить с рельсов. Если исполнение закончится, я приму ответ. – JMichael

ответ

3

It sounds like a ghostbreak. Это решение для этих целей:

Press "Debug" button in the popup. 
Press Ctrl+Pause|Break twice. 
Hit the play button to continue. 
Save the file after completion.