Ich habe einen VBA-Code geschrieben, um zu sehen, ob ein Blatt existiert und ob es gelöscht wird und dann ein anderes Codemodul wieder aufnimmt. Aus irgendeinem Grund tut der Code, den ich unten habe, nichts und ich kann nicht herausfinden warum.Arbeitsblatt löschen, wenn Code vorhanden ist
Sub delete()
Dim ws As Worksheet
If worksheetexists("Export Worksheet") Then
Set ws = Worksheets("Export Worksheet")
Application.DisplayAlerts = False
ws.delete
Call GetData
Else
Call GetData
End If
End Sub
Public Function worksheetexists(sheetname As String, Optional wrkbk As Workbook) As Boolean
Dim wrksht As Worksheet
If wrkbk Is Nothing Then
Set wrkbk = ActiveWorkbook
End If
On Error Resume Next
Set wrksht = wrkbk.Worksheets(sheetname)
worksheetexists = (Err.Number = 0)
Set wrksht = Nothing
On Error GoTo 0
End Function
Der Code sieht syntaktisch korrekt aus. Sind Sie sicher, dass das aktive Workbook ein Blatt mit dem Namen "Export Worksheet" enthält? – user3561813
Ja, das ist der Grund, warum ich so verwirrt bin ... Ich frage mich, ob ich den Code an der falschen Stelle habe. Was ich tun möchte, ist das Ausführen von einem Knopfdruck, bevor ein anderer Code ausgeführt wird. –
Ich denke, wir sollten das Problem eingrenzen. Wir können zuerst prüfen, ob 'worksheetexists 'wahr oder falsch zurückgibt. Vielleicht können Sie eine 'MsgBox' in die' If' Anweisung in der 'delete() 'Prozedur einfügen. Wenn 'worksheetexists' zutrifft, muss die' MsgBox' 'True' anzeigen, sonst wird 'false' angezeigt. Auf diese Weise können wir feststellen, ob dieser Fehler in der Funktion auftritt. – user3561813