У меня есть строка кода, которая продолжает сбой Excel.
Public Sub Main_Runtime()
rpdate = ToolPack.getDateFromInput()
If rpdate = False Then
MsgBox ("Macro Cancelled")
Exit Sub
Это часть моего модуля, но каждый раз, когда я его запускаю, Excel мгновенно останавливается и вылетает, когда попадает в строку «If rpdate = False Then». Я выполнил пошаговый тест, и в этой строке было каждое зависание (для определенных модулей, которые имели эту строку).
Единственный обходной путь, который мне предоставили до наследования этих проектов VBA, заключался в том, что вам нужно скопировать, а затем вставить весь модуль, чтобы это работало. После того, как я это сделаю, код будет работать каждый раз, когда я их запускаю, пока я не закрою проект. Затем я должен повторить шаг копирования и вставки, чтобы Excel не зависал.
EDIT:
Это особый модуль, который мне нужно скопировать и вставить целиком:
Public Sub Main_Runtime()
rpdate = ToolPack.getDateFromInput()
If rpdate = False Then
MsgBox ("Macro Cancelled")
Exit Sub
End If
Application.ScreenUpdating = False
Application.DisplayAlerts = False
'start error log
ErrorLog = Format(rpdate, "mm/dd/yy") & " KPI Started at: " & Now & vbNewLine
'Set Global Variables
Set KPIworkbook = ThisWorkbook
Set dayX = ThisWorkbook.Sheets("Day " & day(rpdate))
Set ActiveAgentTracker = getworkbook(ActiveAgentTrackerFile)
Set AgentInfo = ActiveAgentTracker.Sheets("Agent")
Set supportInfo = ActiveAgentTracker.Sheets("Support")
Set archiveInfo = ActiveAgentTracker.Sheets("Support")
Dim errormail As Outlook.MailItem
Set errormail = Outlook.Application.CreateItem(olMailItem)
On Error Resume Next
With errormail
.Display
.Subject = "Error Log - " & rpdate
.Body = ""
End With
' Set errormail = Nothing
If AgentInfo.AutoFilterMode Then AgentInfo.AutoFilter.ShowAllData
Call ResetDay(rpdate)
dayX.Visible = xlSheetVisible
Call InitOverallWrap(rpdate)
Call ImportRawCMSData(rpdate)
Call ImportOverallWrap(rpdate)
Call ImportRawProxyData(rpdate)
Call UpdateInfractionAgents(ThisWorkbook)
Call TransferInfractions(rpdate)
errormail.Body = errormail.Body & vbNewLine & ErrorLog
ErrorLog = ""
With dayX
.AutoFilterMode = False
.Range("A4:BW4").AutoFilter field:=2, Criteria1:="<>SLS"
.Range("A4:BW4").AutoFilter field:=5, Criteria1:="<>"
.Activate
.Range("A5").Activate
.Range("A2").Value = rpdate
End With
Call RunAgentSummary(KPIworkbook)
Call ImportAttendanceData(rpdate)
Call Import_OB_IB_QA
Call Run_ATL_Summary
Application.ScreenUpdating = True
Application.DisplayAlerts = True
Application.Calculation = xlCalculationAutomatic
ActiveAgentTracker.Close savechanges:=False
KPIworkbook.Save
ErrorLog = ErrorLog & vbNewLine & "KPI Completed at: " & Now
errormail.Body = errormail.Body & vbNewLine & ErrorLog
ErrorLog = ""
Set errormail = Nothing
End Sub