So beschleunigen Sie die VBA-Makros

Ich erstelle ein neues Blatt mit Makros. Bei einer neuen Blattgenerierung werden Daten aus mehr als 4 MS Access-Datenbanken abgerufen. Jeder DB hatte mindestens 200 Felder. Mein Makrocode enthält

  1. Cell locking
  2. Alignment and formatting
  3. One third of the cells in the sheet had a formulas
  4. Cell reference with other Workbooks

Mein Problem ist, dass bei jeder Blattgenerierung mindestens eine Stunde benötigt wird, um den Lochvorgang abzuschließen. Aber es scheint mir, dass es viel zu lange dauert.

Ich bin bereits das @ hinzugefüApplication.ScreenUpdating = True, um den Code zu beschleunigen, aber es dauert immer noch die gleiche Zeit. Wie Sie den Code beschleunigen können. Wenn Sie eine Idee haben, leiten Sie mich bitte.

     `For Ip = 5 To  150
     resp = Range("B" & Ip).Value
     With ActiveSheet.QueryTables.Add(Connection:= _
    "ODBC;DSN=henkel2;DBQ=C:\Hl-RF\RSF-Temp.mdb;DriverId=25;FIL=MS Access;MaxBufferSize=2048;" _
    , Destination:=Range("IV4"))
    .CommandText = "select Vles from " & Shtname & " where cint(PrductID)='" & resp & "' and cint(DepotID) = '" & cnt1 & "' and Mnth = '" & mnths & "' and Type='" & typs & "'"
    .Name = "tab product"
    .FieldNames = True
    .RowNumbers = False
    .FillAdjacentFormulas = False
    .PreserveFormatting = True
    .RefreshOnFileOpen = False
    .BackgroundQuery = True
    .RefreshStyle = xlInsertDeleteCells
    .SavePassword = False
    .SaveData = True
    .AdjustColumnWidth = True
    .RefreshPeriod = 0
    .PreserveColumnInfo = True
    .SourceConnectionFile = _
    "C:\Hl-RF\tabct.odc"
    .Refresh BackgroundQuery:=False
    End With`


    Is There Is any way to Reduce the loop iteration time

Danke im Vorau

Antworten auf die Frage(14)

Ihre Antwort auf die Frage