作者:绿色风
分类:
时间:2022-08-17
浏览:226
楼主 zzmxy |
Q: 如何在VBA中使用SQL语句判断某工作簿内容是否为空并删除该工作簿? 如果使用传统的方式,先打开,再用Application.Counta()来判断,再关闭,这速度非常低下!
A: 在VBA中使用SQL语句,可以通过Select * From该工作簿中的表,并用ADODB.Recordset的EOF值来作判断。 代码如下:- Sub DelBookst()
- Dim conn As String
- Dim strSQL As String, strFileName As String
- Application.DisplayAlerts = False
- Application.ScreenUpdating = False
-
- conn$ = "Provider = Microsoft.JET.OLEDB.4.0;extended properties=excel 8.0;Data Source=" & ThisWorkbook.FullName
- strFileName = Dir(ThisWorkbook.Path & "\*.xls")
- Do
- Set RST = CreateObject("ADODB.Recordset")
- If strFileName = "" Then
- Exit Sub
- ElseIf strFileName <> ThisWorkbook.Name Then
- strSQL = "Select * From [Excel 8.0;Database=" & ThisWorkbook.Path & "\" & _
- strFileName & "].[" & Left(strFileName, 5) & "$] "
- RST.Open strSQL, conn
- If Not RST.EOF Then
- RST.Close
- Kill ThisWorkbook.Path & "\" & strFileName
- End If
- End If
- strFileName = Dir
- Loop
- RST.Close
- Application.ScreenUpdating = True
- Application.DisplayAlerts = True
- End Sub
SQL删除空工作簿zz.rar
该帖已经同步到 |
2楼 水星钓鱼 |
是个好方法,就是只能判断其中一个工作表的内容是否为空。 |
3楼 初学者2012 |
好方法,学习了**! |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一