Wie kann ADO vor dem Speichern aktualisierte Daten aus einer schreibgeschützten Excel-Datei lesen? (VBA)

Ich verwende den folgenden Code, um Daten aus Sheet1 von SAME Excel Sheet zu lesen. Ich lade die Daten in das Return-Array. Die Excel-Blattdatei wurde mit "Nur Lesen" markiert und wird immer im Modus "NUR LESEN" geöffnet.

Das Problem ist Wenn ich Daten in Sheet1 ändere, weil die Datei als "schreibgeschützt" geöffnet ist, wird dies nicht in der ADO-Abfrage berücksichtigt. ADO gibt weiterhin aus, was sich in der "gespeicherten" Datei befindet, und ignoriert, was in der schreibgeschützten temporären Version aktualisiert wurde. Das folgende Beispiel bezieht den Wert "Col5: 6" aus der Zelle "E6". Wenn ich den Wert ersetze, um "Test" zu sein, gibt ADO weiterhin "Col5: 6" @ a

Wie kann ich ADO veranlassen, die aktuellen Daten auf Sheet1 zu lesen, ohne "speichern unter" zu müssen?

Sub sbADO()
    Dim sSQLSting As String
    Dim Conn As New ADODB.Connection
    Dim mrs As New ADODB.Recordset
    Dim DBPath As String, sconnect As String
    Dim returnArray

    DBPath = ThisWorkbook.FullName
    sconnect = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & DBPath _
    & ";Extended Properties=""Excel 12.0;HDR=Yes;IMEX=1"";"

    Conn.Open sconnect
    sSQLSting = "SELECT * From [Sheet1$] "

    mrs.Open sSQLSting, Conn

    returnArray = mrs.GetRows

    mrs.Close
    Conn.Close

    Debug.Print returnArray(4, 4) '>> "Col5:6"

End Sub

Antworten auf die Frage(2)

Ihre Antwort auf die Frage