【发布时间】:2017-03-13 14:03:35
【问题描述】:
我开发了一个在我的计算机上运行良好的宏。但是,当我让预期的最终用户在他们的计算机上运行宏时,即使没有断点,它也会在同一行代码处中断。相关代码如下:
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,对正在使用的文件夹的访问权限,并且在我能想到的任何方面都基本相同。
对于系统设置中非明显差异的任何帮助或我未提及的代码可能捕获的任何其他原因将不胜感激。
【问题讨论】:
-
代码怎么破?它是否打开 VBA 窗口并以黄色突出显示该行?或者你看到继续/调试窗口了吗?
-
建议的修复方法可能有效。代码没有抛出中断提示,只是停止并突出显示代码,就好像您已经点击了调试一样。我继续前进,让我的用户使用 Ctrl+Break 两次,到目前为止代码正在运行,但是该部分代码至少被命中了十几次,所以还有时间让事情脱轨。如果执行完成,我会接受答案。