从Access 2010 VBA中删除工作表

时间:2015-05-22 16:11:23

标签: excel vba access-vba ms-access-2010

我有一个表单可以为用户导出和编辑excel文件。尝试让我的代码从Access 2010 VBA代码中删除现有工作表时出现问题。

我的代码:

Private Sub Command0_Click()

Dim xl As Excel.Application
Dim wb As Excel.Workbook
Dim sht As Excel.Worksheet

Set xl = CreateObject("Excel.Application")
Set wb = xl.Workbooks.Open("C:\Users\Me\Desktop\Document.xlsx")

For Each sht In wb.Worksheets
  If sht.Name = "DeleteSheet" Then
    wb.Worksheets("DeleteSheet").Delete
  End If
Next sht

wb.Save
wb.Close
xl.Quit

End Sub

当我运行代码时,没有错误。但是,工作表不会被删除。我知道sht.Name会读取工作表名称“DeleteSheet”,允许if语句运行。因此,我认为它归结为保存方法或此行:wb.Worksheets("DeleteSheet").Delete。 TIA!

2 个答案:

答案 0 :(得分:0)

可以直接删除工作表,即

而不是

wb.Worksheets( “DeleteSheet”)。删除

使用

sht.Delete

答案 1 :(得分:0)

你能尝试这样的事吗,瑞安?

Dim xl As Object
Dim wb As Excel.Workbook
Dim sht As Excel.Worksheet

Set xl = CreateObject("Excel.Application")
xl.Application.DisplayAlerts=False
Set wb = xl.Workbooks.Open("C:\Users\Me\Desktop\Document.xlsx")

For Each sht In wb.Worksheets
  If sht.Name = "DeleteSheet" Then
    wb.Worksheets("DeleteSheet").Select
    xl.ActiveSheet.Delete
  End If
Next sht

wb.Save
wb.Close
xl.Quit