我寫了一些VBA代碼來查看工作表是否存在,以及它是否刪除它,然後恢復另一個代碼模塊。出於某種原因,我下面的代碼沒有做任何事情,我不明白爲什麼。刪除工作表(如果存在)代碼
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
該代碼看起來在語法上是正確的。你確定activeworkbook包含一個名爲「導出工作表」的表 – user3561813
是的,這就是爲什麼我很困惑...我想知道如果我的代碼在錯誤的位置。我想要發生的是在一些其他代碼運行之前按下一個按鈕來運行它。 –
我想我們應該縮小這個問題的範圍。我們可以先檢查'worksheetexists'是否返回true或false。也許你可以在'delete()'過程的'If'語句中包含'MsgBox'。如果''worksheexists'是真的,那麼'MsgBox'顯示True,否則顯示false。這樣,我們可以確定該功能是否發生故障。 – user3561813