从 Access 2010 VBA 删除工作表

问题描述 投票:0回答:3

我有一个为用户导出和编辑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
。蒂亚!

excel ms-access vba ms-access-2010
3个回答
0
投票

可以直接删除工作表吗,即

而不是

wb.Worksheets("DeleteSheet").删除

使用

嘘。删除


0
投票

你能尝试这样的事情吗,Ryan?

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

0
投票

如果这是工作簿中唯一的工作表,则 Excel 将不允许您删除它。尝试在末尾添加一个空白选项卡作为文件中的缓冲区,然后隐藏该空白选项卡。

© www.soinside.com 2019 - 2024. All rights reserved.