电竞比分网-中国电竞赛事及体育赛事平台

分享

Excel VBA把Excel導(dǎo)入到Access中(TransferSpreadsheet)

 Brian82 2011-04-11

導(dǎo)入單個(gè)EXCEL文件

Sub Export_Sheet_Data_ToAccess()
Dim myFile As Variant
Dim AppAccess As New Access.Application
Dim wbPath As String


myFile = Application.GetOpenFilename("Excel Files (*.xls), *.xls")
If VarType(myFile) = vbBoolean Then
       MsgBox "CanCel by User!"
       Exit Sub
End If

Application.ScreenUpdating = False
wbPath = ThisWorkbook.Path & "\"

With AppAccess
       .OpenCurrentDatabase wbPath & "CheckIn.mdb", True
       .DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "data", myFile, True
       .CloseCurrentDatabase
End With

Application.ScreenUpdating = True
MsgBox myFile & Chr(10) & " Export is Done!"

Set AppAccess = Nothing
End Sub

導(dǎo)入多個(gè)EXCEL文件

Sub Export_MultiSheets_Data_ToAccess()
Dim myFiles As Variant, vItem As Variant
Dim AppAccess As New Access.Application
Dim wbPath As String

myFiles = Application.GetOpenFilename( _
       "Excel Files (*.xls), *.xls", , "Select All Files", , True)
If VarType(myFiles) = vbBoolean Then
       MsgBox "CanCel by User!"
       Exit Sub
End If

Application.ScreenUpdating = False
wbPath = ThisWorkbook.Path & "\"

With AppAccess
       .OpenCurrentDatabase wbPath & "CheckIn.mdb", True
       If IsArray(myFiles) Then
         For Each vItem In myFiles
            .DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "data", vItem, True
         Next
       End If
       .CloseCurrentDatabase
End With

Application.ScreenUpdating = True
MsgBox " Export is Done!"

Set AppAccess = Nothing
End Sub

導(dǎo)入一個(gè)工作簿下的所有工作表

Sub Export_Sheets_Data_ToAccess()
Dim myFile As Variant
Dim AppAccess As Access.Application
Dim wbPath As String
Dim objWb As Workbook
Dim rngData As Range
Dim lRow As Long
Dim lCol As Long
Dim arr() As Variant
Dim iSht As Integer

Set AppAccess = New Access.Application

myFile = Application.GetOpenFilename("Excel Files (*.xls), *.xls")
If VarType(myFile) = vbBoolean Then
       MsgBox "CanCel by User!"
       Exit Sub
End If

Application.ScreenUpdating = False
Set objWb = GetObject(myFile)
ReDim arr(1 To objWb.Sheets.Count)
For iSht = 1 To objWb.Sheets.Count
       With objWb.Sheets(iSht)
         lRow = .[a65536].End(xlUp).Row
         lCol = .[iv1].End(xlToLeft).Column
         Set rngData = .Range(.Cells(1, 1), .Cells(lRow, lCol))
         arr(iSht) = .Name & "!" & rngData.Address(0, 0)
       End With
Next
objWb.Close False
Set objWb = Nothing


wbPath = ThisWorkbook.Path & "\"

With AppAccess
       .OpenCurrentDatabase wbPath & "Database.mdb", True
       For iSht = 1 To UBound(arr)
         .DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, _
            "data", myFile, True, arr(iSht)
       Next
       .CloseCurrentDatabase
End With

Application.ScreenUpdating = True
MsgBox myFile & Chr(10) & " Export is Done!"

Set AppAccess = Nothing
End Sub

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多