2017-11-20 1 views
0

Seit einiger Zeit ist ein intermittierender Fehler beim Speichern/Öffnen von Excel-Dateien (und nur Excel-Dateien) durch Automatisierung in VBA aufgetreten. Dieser Fehler ist sehr unvorhersehbar und tritt bei verschiedenen Teilen unserer Automatisierung auf, aber er scheint beim Speichern/Öffnen verschiedener Dateien (und meistens mit zufälligen temporären Dateien) aufzutreten. Wir verwenden derzeit Office 2010 und unsere Systeme sind auf dem neuesten Stand.Intermittierender Excel-Fehler beim Öffnen/Speichern von Dateien

Der Fehler ist: "'' FILENAME.filetype 'kann nicht zugegriffen werden. Die Datei ist möglicherweise beschädigt, befindet sich auf einem Server, der nicht reagiert, oder schreibgeschützt ". Der Dateiname, in dem dieser Fehler auftritt, ist immer unterschiedlich (Beispiel: 'A1B2CDE3.tmp'). Die Datei, in der der Fehler am häufigsten auftritt, scheint die zufällig benannte temporäre Datei zu sein, die Windows beim Speichern einer Arbeitsmappe generiert.

Gegenwärtig löschen wir dieses Meldungsfeld und die Automatisierung wird fortgesetzt, wie es normalerweise der Fall wäre, es sei denn, der gleiche Fehler tritt später in der Automatisierung erneut auf.

Beispiel Code, in dem der Fehler auftritt, häufig:

WorkbookName.Sheets("Sheet1").Cells.NumberFormat = "General" 

***WorkbookName.SaveAs FileName:=MyDirectory & "\Filename.txt", FileFormat:=xlTextWindows*** 

WorkbookName.Close savechanges:=False 

Anmerkung: Die fett gedruckten (***) Teil des obigen Code ist, wo der Fehler am häufigsten auftritt. Der Fehler tritt wegen der TXT-Datei in dem obigen Beispiel nicht auf, es tritt aufgrund der Windows generierten temporären Datei auf, wenn die TXT-Datei gespeichert wird.

Bisher haben wir die folgende versucht:

• Ändern von VBA-Code (wie die saveas Dateityp und Automatisierung Änderung der Fehlermeldung zu umgehen)

• Sicherstellung Dateien sind nicht schreibgeschützt.

• Erneute Installation von Office auf Client-Computern.

• Überprüfen, ob die Berechtigungen auf dem freigegebenen Laufwerk und allen Dateien/Ordnern korrekt eingestellt sind.

• Entfernen der neuesten Office-Aktualisierung auf einigen Client-Computern zum Testen.

Obwohl der Fehler in Excel auftritt, glauben wir, dass dies ein Serverproblem sein kann, basierend auf anderen Forumsdiskussionen, die wir gelesen haben, wo andere ein ähnliches Problem hatten.

Irgendwelche Ideen sind in diesem Stadium willkommen, da wir bei der Lösung dieses Problems nicht erfolgreich waren.

+0

Das ist wie ein fühlt Dateisystemfehler, der Ihnen von außerhalb Ihres Codes aufgezwungen wird. Wie gehen Sie mit dem Fehler um, wenn es passiert, d. H. Haben Sie einen speziellen Fehlerbehandlungscode in Ihrer Routine? Eine Sache, die man versuchen sollte, wäre, die SaveAs nach einer Verzögerung von ein paar Sekunden erneut zu versuchen. So frustrierend es auch sein mag, diese Dinge klären sich manchmal von selbst auf. – PeterT

+0

Welche Dateigrößen sind normalerweise? Wenn groß, vielleicht Antivirus kommt hier ins Spiel? Oder wenn es ein Netzlaufwerk ist, sind die Switches überlastet, wenn es passiert? Sie können versuchen, dies im lokalen Temp-Ordner zu speichern. Wenn Sie fertig sind, verwenden Sie FileSystemObject, um die Datei zu verschieben. – PatricK

Antwort

0

Es gibt zusätzliche Fehlerinformationen, die Aufschluss darüber geben könnten, was das Problem verursacht. Ich nehme an, Sie Fehlerbehandlung, also Code wie folgt in Ihre Fehlerbehandlungsroutine kann die Informationen, die Sie auf einen Reim brauchen geben (oder geben Sie uns weitere Informationen es für Sie zu lösen):

Dim errLoop As Error 
For Each errLoop In Errors 
    With errLoop 
     Debug.Print "Error #" + CStr(.Number) 
     Debug.Print " " + .description 
     Debug.Print " (Source: " + .Source + ")" 
    End With 
Next 
Verwandte Themen