Если rpdate = False, то в строке происходит сбой Excel - PullRequest
0 голосов
/ 29 октября 2018

У меня есть строка кода, которая продолжает сбой 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...