在循环时将Excel文件导入Access

时间:2013-11-06 13:17:24

标签: ms-access access-vba

我很乐意使用VBA将Excel工作表导入访问,并循环访问给定的文件夹以将其中的所有内容都带回来。但是,我想遍历一个文件夹,只导入一些文件。有人可以帮忙吗?每个文件都称为REPORT1等,并运行到REPORT67。我只想选择1-47

下面的代码工作正常,但这只是从指定位置复制所有内容。

Sub Sample2()
Const cstrFolder As String = "F:\TCB_HR_KPI\Data View\"
Dim strFile As String
Dim i As Long

strFile = Dir(cstrFolder & "*.xls")
If Len(strFile) = 0 Then
    MsgBox "No Files Found"
Else
    Do While Len(strFile) > 0
        Debug.Print cstrFolder & strFile

        DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, _
        strFile, cstrFolder & strFile, True

        i = i + 1
        strFile = Dir()
    Loop
    MsgBox i & " Files are imported"
End If
End Sub

2 个答案:

答案 0 :(得分:0)

我愿意: DIR $() DoWhile Val(Mid(文件名,7,2))< 48    导入文件    DIR $() 环

答案 1 :(得分:0)

我刚刚将您的代码“ Do While Len(strFile)> 0”替换为“ Do While Int(Mid(strFile,7))<48”,希望对您有所帮助。

Sub Sample2()
Const cstrFolder As String = "F:\TCB_HR_KPI\Data View\"
Dim strFile As String
Dim i As Long

strFile = Dir(cstrFolder & "*.xls")
If Len(strFile) = 0 Then
    MsgBox "No Files Found"
Else
    Do While Int(Mid(strFile, 7)) < 48
        Debug.Print cstrFolder & strFile

        DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, _
        strFile, cstrFolder & strFile, True

        i = i + 1
        strFile = Dir()
    Loop
    MsgBox i & " Files are imported"
End If
End Sub