Access VBA öffnen, Bearbeiten und speichern von Excel-doc

Ich habe eine Access-DB zu öffnen, Bearbeiten und speichern einer Excel-doc, der funktioniert das erste mal ausgeführt, aber wenn ich versuchen, zu ändern, mehr als eine Datei (oder die gleiche Datei zweimal) schlägt es mit "Run-time error '1004': Method 'Cells' of object '_Global' ist fehlgeschlagen"

Wenn ich die DB dann wieder zu öffnen, ist es wieder funktioniert für die erste Datei verändert.

Ich bin zwar nicht neu auf VBA würde ich sagen, dass ich bin ein Neuling. Hier ist ein snippit der code, den ich verwende:

    Code:
        'Open spreadsheet and make it visible
        Set xl = CreateObject("Excel.Application")
        strInputFile = varItem
        xl.Workbooks.Open strInputFile
        xl.Visible = True

        'Trying to get row count here but not working yet
        'Set myRange = xl.Sheets("Sheet1").Range("C:C")
        'lRowCount = Excel.Application.WorksheetFunction.CountA("Sheet1").Range("C:C")
        'lRowCount = xl.WorksheetFunction.CountA(Worksheets("Sheet1").Cells(C, C))
        'Debug.Print lRowCount
        'strMyRange = "C:C"
        'lRowCount = xl.WorksheetFunction.CountA(strMyRange)
        'Debug.Print lRowCount
        'lRowCount = Excel.Application.WorksheetFunction.CountA(Workbooks(strInputFile).Sheets("Sheet1").Range("C:C"))
        'Debug.Print lRowCount

        'Make the changes
        j = 0
        If Left(strFile, 4) = "xxxx" Then 
            myPath = "\\a\path\for\xxxx"
            If InStr(1, strFile, "IQ") Then
                For i = 1 To 500 'Row count not working yet
                    If InStr(1, Cells(i, "C").Value, myVariable) > 0 Then
                        Cells(i, "B") = "New Value"
                        j = j + 1
                    End If
                Next
            End If
        End If

'Clean up
xl.Quit
Set xl = Nothing
Set objInputFile = Nothing
  • In welcher Zeile die Ausführung fehlschlägt?
  • Wenn InStr(1, Cells(i, "C").Wert, myVariable) > 0, Dann ist
  • Ehrlich gesagt, ich weiß nicht, warum es überhaupt funktioniert. Sieht aus wie dieser code wurde kopiert aus Excel. In Access direkt Aufrufe, wie die Zelle nicht funktionieren. Verwenden Sie Variablen wie xl.Sheets("Sheet1").Cells(i, "C")
  • Danke Sergej. Ich werde versuchen, Ihren Vorschlag und die Ergebnisse posten wenn meine Sitzungen sind vorbei.
  • Vergessen Sie nicht, die zweite Cells in die Zeile darunter, und vergessen Sie nicht, speichern Sie die Datei mit der .Save Methode auf die Workbook Objekt.
  • Das funktionierte perfekt Sergej. Danke für den Tipp. Noch eine Frage zu der auskommentierten Abschnitt in dem code snippit ich ursprünglich zur Verfügung gestellt, die ich nicht bekommen kann die Zeilenanzahl zu etwas zurückkehren, aber eine 1 und für das Leben von mir, alle die googeln ich tun, ist nicht hilfreich. Kann ylou suggesxt eine Methode für das bitte? Erik - vielen Dank für die Suche! 🙂

InformationsquelleAutor JDH | 2017-08-16
Schreibe einen Kommentar