我的腳本需要幾年才能運行嗎?這只是代碼的一部分,但它是降低速度的一部分。表格報告是來自電子病人系統的報告。它包含訪問日期,這些日期需要與工作表PtLog中的日期進行比較。在PtLog中,每行是一名患者,對於表格報告每次訪問都是一條線。因此,患者可以在工作表報告中的多行。有11個可能的訪問日期和約700名可能的患者。含義約7700日期需要檢查。我希望我自己有點清楚...提前Excel VBA腳本真的很慢
THX
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual
For colPtLog = 11 To 20
For rowPtLog = 2 To lastRowUsedPtLog
Sheets("PtLog").Select
patientNrPtLog = Cells(rowPtLog, 5).Value
nrVisitPtLog = Cells(1, colPtLog).Value
dateVisitPtLog = Cells(rowPtLog, colPtLog).Value
Sheets("Report").Select
For rowReport = 2 To lastRowUsedReport
Sheets("Report").Select
dateVisitReport = Sheets("Report").Cells(rowReport, 6)
patientNrReport = Sheets("Report").Cells(rowReport, 2)
nrVisitReport = Sheets("Report").Cells(rowReport, 4)
If patientNrPtLog = patientNrReport And nrVisitPtLog = nrVisitReport Then
If dateVisitPtLog <> dateVisitReport Then
If dateVisitPtLog > 0 And dateVisitReport = 0 Then
Sheets("CONTROL").Select
lastRowUsedControlVisitNoDate = lastRowUsedControlVisitNoDate + 1
Cells(lastRowUsedControlVisitNoDate, 2) = patientNrPtLog
Cells(lastRowUsedControlVisitNoDate, 3) = nrVisitPtLog
End If
If dateVisitPtLog = 0 And dateVisitReport > 0 Then
Sheets("PtLog").Cells(rowPtLog, colPtLog) = dateVisitReport
With Sheets("PtLog").Cells(rowPtLog, colPtLog).Font
.Color = -1003520
.TintAndShade = 0
End With
End If
If dateVisitPtLog > 0 And dateVisitReport > 0 Then
Sheets("CONTROL").Select
lastRowUsedControlDateNoMatch = lastRowUsedControlDateNoMatch + 1
Cells(lastRowUsedControlDateNoMatch, 9) = patientNrPtLog
Cells(lastRowUsedControlDateNoMatch, 10) = nrVisitPtLog
Cells(lastRowUsedControlDateNoMatch, 11) = dateVisitReport
Cells(lastRowUsedControlDateNoMatch, 12) = dateVisitPtLog
End If
End If
Exit For
End If
Next rowReport
Next rowPtLog
Next colPtLog
Application.ScreenUpdating = True
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic
非常感謝您花時間回答我的問題。我會在今晚/明天嘗試你的建議,我會讓你知道它是如何發生的。我非常感謝你的努力! – Ottoman079
你的代碼非常好!它在3秒內完成了任務!我要研究你的代碼,因爲我不明白它現在所做的一切。也許我會問你一些更多的問題,如果自己找不到答案,如果這對你來說沒問題...... :) Thx! – Ottoman079
很高興知道它有幫助。並且要知道你不會只是使用代碼,但想要了解它。沒有問題來自你的問題,但我不能保證快速的答案。最後,如果我真的滿足了你的第一個需求,你可能需要提高我的答案和/或給一些代表。 – user3598756