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 dieWorkbook
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! 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dem Excel-VBA-code für die Verwendung in Access geändert werden soll. Sie können nicht verwenden Sie direkte Aufrufe von Excel-Bibliothek Methoden wie
Cell
. Deklarieren Sie Variablen für Excel.Anwendung, eine Arbeitsmappe und Arbeitsblatt und verwenden Sie für die Referenzierung von Zellen im Arbeitsblatt. Vermeiden Sie die Verwendung von Methoden Aktivieren. Also, in deinem Fall der code so Aussehen:Vergessen Sie nicht, fügen Sie einen Verweis auf Microsoft Excel library