Ich habe eine Access-DB, bearbeiten zu öffnen und ein Excel-Dokument speichern, die fein das erste Mal laufen funktioniert, aber wenn ich versuche, mehr als eine Datei (oder die gleiche Datei zweimal zu ändern) Es scheitert mit "Laufzeitfehler '1004': Methode 'Zellen' des Objekts '_Global' fehlgeschlagen"Access VBA zu öffnen, bearbeiten und speichert Excel doc
Wenn ich die DB schließe, dann öffne sie wieder, es funktioniert wieder für die erste geänderte Datei.
Obwohl ich nicht bin neu in VBA würde ich sagen, dass ich ein Neuling bin. Hier ist ein Snippit des Codes, 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 dem hinzuzufügen Linie die Ausführung fehlschlägt? –
Wenn InStr (1, Zellen (i, "C"). Value, myVariable)> 0 Then – JDH
Ehrlich gesagt weiß ich nicht, warum es überhaupt funktioniert. Sieht so aus, als wäre dieser Code aus Excel kopiert worden. In Access sollten direkte Anrufe wie Cell nicht funktionieren. Verwenden Sie Variablen wie 'xl.Sheets (" Sheet1 "). Zellen (i," C ")' –