帮我优化以下代码Public Function wanbantaoyu() '导入execl清单 Dim FileSystem As Object Dim folder As Object Dim File As Object Dim filePath As String Dim importCount As Integer '设置文件夹路径 filePath = "C:\Users\icd\Desktop\文本清单" '创建文件系统对象 Set FileSystem = CreateObject("Scripting.FileSystemObject") Set folder = FileSystem.GetFolder(filePath) '循环遍历文件夹中的所有excel文件 For Each File In folder.Files If Right(File.Name, 4) = ".xlsx" Then '导入excel文件到Access表中 DoCmd.TransferSpreadsheet acImport, 10, "语料流水清单", File.Path, True, "" '删除导入的txt文件 FileSystem.DeleteFile File.Path delsomething importCount = importCount + 1 End If Next File If importCount = 0 Then End If End Function
时间: 2024-03-28 12:39:16 浏览: 55
这段代码的主要功能是将指定文件夹下的所有 Excel 文件导入 Access 表中,并将导入的 Excel 文件删除。看起来代码逻辑并没有问题,但是可以进行一些优化:
1. 在循环遍历文件夹时,可以加入过滤条件以确保只处理 Excel 文件,这样就不需要在每个文件中进行后缀名判断。
2. 如果导入的 Excel 文件数量较多,可以考虑使用 DoCmd.SetWarnings False 关闭 Access 的警告信息,以便更快地导入数据。
3. 如果需要记录导入文件的数量,可以在函数的最后添加一个返回值,返回导入文件的数量。
下面是优化后的代码:
Public Function wanbantaoyu() As Integer
'导入excel清单
Dim FileSystem As Object
Dim folder As Object
Dim File As Object
Dim filePath As String
Dim importCount As Integer
'设置文件夹路径
filePath = "C:\Users\icd\Desktop\文本清单"
'创建文件系统对象
Set FileSystem = CreateObject("Scripting.FileSystemObject")
Set folder = FileSystem.GetFolder(filePath)
'循环遍历文件夹中的所有excel文件
For Each File In folder.Files
'过滤非Excel文件
If LCase(FileSystem.GetExtensionName(File.Path)) = "xlsx" Then
'导入excel文件到Access表中
DoCmd.TransferSpreadsheet acImport, 10, "语料流水清单", File.Path, True, ""
'删除导入的Excel文件
FileSystem.DeleteFile File.Path
delsomething
importCount = importCount + 1
End If
Next File
'关闭Access警告信息
DoCmd.SetWarnings False
'返回导入文件的数量
wanbantaoyu = importCount
End Function
阅读全文