日期:2014-05-16  浏览次数:21483 次

如何用vba代码判断指定位置的excel文件中的指定sheet是否存在,若存在,怎么删除
我想把查询结果导入到excel中,用的是
  DoCmd.RunSQL   ( "SELECT   *   into   [Excel   8.0;Database=D:\Test1.xls].Sheet1   from   表名 ")的语句

但是sheet1   已经存在的时候,再执行改语句,出错,提示,该sheet已经存在,我想在执行之前,先检测该sheet是否存在,有的话,删除。
请问,检测和删除的语句怎么写?

或者用哪个导出的语句,可以直接覆盖,已经存在的时候,不会提示错误,直接覆盖的。

------解决方案--------------------
Set df = CreateObject( "EXCEL.APPLICATION ")
df.Visible = True
df.DisplayAlerts = False
df.Workbooks.Open "D:\TEMP\123.XLS "
For I = 1 To df.Worksheets.Count
If df.Worksheets(I).Name = UCase( "SHEET1 ") Then
MsgBox df.Worksheets(I).Name
df.Worksheets(I).Delete
End If
Next
df.ActiveWorkbook.Save
df.Quit
Set df = Nothing
DoCmd.RunSQL ( "SELECT * into [Excel 8.0;Database=D:\TEMP\123.xls].Sheet1 from B1 ")
------解决方案--------------------
1、用dir( "D:\test.xls "),如果返回空串,表示没有这个文件

if dir( "D:\test.xls ") then
msgbox "不存在这个文件 "
endif

2、如果只有一个sheet,直接删除这个文件,如:

if df.Worksheets.Count=1 then
kill ( "D:\test.xls ")
endif