2013-10-21 172 views
-1

我对VBA Access &完全陌生。我需要将excel文件数据导入访问表。 我正在尝试使用下面的代码。将Excel文件数据导入Access数据库VBA

DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "TableName", importFilePath, True 

在我的输入文件中有一些格式,我需要从第8行获取数据。

所以,我被困在这一点。如何从第8列读取数据。 我也指定了范围,但然后它产生了错误。 任何人都可以帮忙吗?

+0

可能重复[通过VBA将MS Access表导出到同一目录中的Excel电子表格](http://stackoverflow.com/questions/1849580/export-ms-access-tables-through-vba-to-an-excel-spreadsheet-in -same-directory) – 2013-10-21 08:40:15

+0

你想要第8列还是第8列的数据? – HansUp

回答

0

当然,这样做是创建在Excel中复制文件,打开的临时副本,删除第7行,保存它,然后导入复制的一种方法:

Sub ExcelImportTest() 
    Dim fso As Object ' FileSystemObject 
    Dim f As Object ' File 
    Dim strTempPath As String 
    Dim objExcel As Object ' Excel.Application 
    Dim objWorkbook As Object ' Excel.Workbook 
    Const TemporaryFolder = 2 

    Set fso = CreateObject("Scripting.FileSystemObject") ' New FileSystemObject 
    strTempPath = fso.GetSpecialFolder(TemporaryFolder) & "\" & fso.GetTempName & "\" 
    fso.CreateFolder strTempPath 
    Set f = fso.GetFile("C:\Users\Gord\Desktop\toImport.xls") 
    fso.CopyFile f.Path, strTempPath & f.Name 

    Set objExcel = CreateObject("Excel.Application") ' New Excel.Application 
    Set objWorkbook = objExcel.Workbooks.Open(strTempPath & f.Name) 
    objWorkbook.ActiveSheet.Rows("1:7").EntireRow.Select 
    objExcel.Selection.Delete 
    objWorkbook.ActiveSheet.Range("A1").Select 
    objWorkbook.Save 
    Set objWorkbook = Nothing 
    objExcel.Quit 
    Set objExcel = Nothing 

    DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "ExcelData", strTempPath & f.Name, True 

    fso.DeleteFile strTempPath & f.Name 
    fso.DeleteFolder Left(strTempPath, Len(strTempPath) - 1) 

    Set f = Nothing 
    Set fso = Nothing 
End Sub 
相关问题