2017-01-11 15 views
0

So ... Ich habe dieses Stück Code als Referenz:Überprüfen Sie, ob die Excel-Arbeitsmappe geöffnet ist.

Option Explicit 

Sub Sample() 
Dim Ret 

Ret = IsWorkBookOpen("C:\myWork.xlsx") 

If Ret = True Then 
    MsgBox "File is open" 
Else 
    MsgBox "File is Closed" 
End If 
End Sub 

Function IsWorkBookOpen(FileName As String) 
Dim ff As Long, ErrNo As Long 

On Error Resume Next 
ff = FreeFile() 
Open FileName For Input Lock Read As #ff 
Close ff 
ErrNo = Err 
On Error GoTo 0 

Select Case ErrNo 
Case 0: IsWorkBookOpen = False 
Case 70: IsWorkBookOpen = True 
Case Else: Error ErrNo 
End Select 
End Function 

ich meine Arbeitsmappe verwendet und alles, aber es gibt Syntaxfehler in Zeile 15: ff = FreeFile_().

Warum ist das der Fall? Welcher Syntaxfehler ist da? Ich versuche zu überprüfen, ob Arbeitsmappe von einem anderen Benutzer geöffnet wird, denn wenn das der Fall ist, kann ich die Werte in der Arbeitsmappe nicht speichern.

Danke für Antworten, D.

+1

In Ihrem Kommentar schreiben Sie 'ff = FreeFile _()' aber in Ihrem Code 'ff = FreeFile()'. Anfangscode ohne Unterstrich funktioniert einwandfrei. –

+0

Ja, ich weiß ... In meinem Code schrieb ich ff = FreeFile(), aber wenn ich Fehler erhalte, hat es darin unterstrichen. –

+0

Versuchen Sie 'ff = FreeFile' ohne Klammern. Ich habe Excel 2016 und es funktioniert mit oder ohne sie gut. –

Antwort

0

Ich glaube, Sie copy/paste den Code in VBA Editor. Säubere also den Code, lösche alle nicht benötigten Lücken und überprüfe, wo jede Zeile fertig ist.

+0

Hallo, danke für die Antwort. Ich habe den ganzen Code umgeschrieben, aber es gab den gleichen Fehler ... ich bin dran vorbeigekommen, aber als ich in der letzten Zeile stecken geblieben bin ... wieder Syntaxfehler .. –

+0

meinst du Fehler bei Zeile "Case Else: Fehler ErrNo "? Wenn ja, dann ersetze "ErrNo = Err" durch "ErrNo = Err.Number" –

+0

Ja, das ist der Fehler .. es sagt Syntaxfehler Case Else: _Error ErrNo Ich habe versucht, die Sachen zu ersetzen, aber ich bekomme den gleichen Fehler .. Syntax Fehler in dieser Zeile. Ich bin jetzt wirklich verwirrt:/ –

Verwandte Themen