我从excel打开excel工作簿并删除里面的工作表。我希望在没有来自Excel的消息的情况下这样做:
" Excel将永久删除此表,您要继续"
但是我无法使" DisplayAlerts = False"工作正常。
Public Sub xportQuery()
Dim appExcel As Excel.Application
Dim myWorkbook As Excel.Workbook
Dim PathDaily, FileName As String
PathDaily = Forms!Menu!Text69
FileName = Forms!Menu!Text84
Set appExcel = CreateObject("Excel.Application")
Set myWorkbook = appExcel.Workbooks.Open(PathDaily & FileName)
appExcel.Visible = True
'Set appExcel = Nothing
Set myWorkbook = Nothing
appExcel.DisplayAlerts = False
Workbooks(FileName).Sheets("Sheety").Delete
appExcel.DisplayAlerts = True
End Sub
以这种方式编写,我得到一个"下标超出范围"在Sheets("Sheety").delete
如果我使用了两个DisplayAlerts行,代码可以正常工作,但有警报。
如何在没有任何警报消息的情况下正确编写代码?
注意:DoCmd.SetWarnings无效,因为消息显示在Excel中
答案 0 :(得分:0)
感谢Sam的评论:
它可以通过改变
来实现Workbooks(FileName).Sheets("Sheety").Delete
进入
myWorkbook.Sheets("Sheety").Delete
或
AppExcel.Workbooks(FileName).Sheets("Sheety").Delete
然而,宏的其余部分仍然可以使用没有" AppExcel的工作簿(文件名)。参考