我有一个为用户导出和编辑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
。蒂亚!
可以直接删除工作表吗,即
而不是
wb.Worksheets("DeleteSheet").删除
使用
嘘。删除
你能尝试这样的事情吗,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
如果这是工作簿中唯一的工作表,则 Excel 将不允许您删除它。尝试在末尾添加一个空白选项卡作为文件中的缓冲区,然后隐藏该空白选项卡。