VBA Kalkulation unterdrücken bei Query.Refresh
Boris
obwohl ich gemäß folgendem Skript die Kalkulationseinstellung auf manuell setze, wird (anscheinend durch das qt.refresh) nach jedem Schleifendurchlauf neu kalkuliert. Setze ich die Kalkulation dagegen per Hand vor dem Ausführen des Makros auf manuell, wird nicht kalkuliert. Woran liegt das? In anderen Makros funktioniert untenstehende Kalkulationsabfrage...
Sub Query_Update()
Dim oldDir As String
Dim newDir As String
Dim ws As Worksheet
Dim qt As QueryTable
Dim lngCalcStatus As Long
lngCalcStatus = Application.Calculation
If lngCalcStatus -4135 Then Application.Calculation = xlCalculationManual
newDir = ThisWorkbook.Path
For Each ws In Worksheets
For Each qt In ws.QueryTables
If qt.QueryType = xlODBCQuery Then
oldDir = ExtractDir(qt.Connection)
If oldDir "" Then
qt.Connection = Replace(qt.Connection, oldDir, newDir, compare:= _
vbTextCompare)
qt.CommandText = Replace(qt.CommandText, oldDir, newDir, compare:= _
vbTextCompare)
End If
End If
qt.Refresh
Next
Next
Application.Calculation = lngCalcStatus
End Sub
Viele Grüße...