如何从excel转移超过65536行到Access(两个版本2010)

我有以下代码将一些行从Excel传输到Access数据库,然后从Access导出到.txt文件。 问题是,当我将其导出到Access时,它只导出65536行。 有没有办法解决它?

Sub Mailing_Recebido() Dim i As Long Dim Caminho As String Dim A As Object Range("i27").Value = "Inicio da Exportação..." Range("BJ18").Select ActiveCell.FormulaR1C1 = "=CELL(""nome.arquivo"")" Range("BJ18").Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False Selection.TextToColumns Destination:=Range("BJ18"), DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _ Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _ :="[", FieldInfo:=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True Range("BK18").Select Selection.ClearContents Caminho = Range("bj18").Value Sheets("Mailing_Recebido").Select Range("a5").Select i = Cells(Rows.Count, 1).End(xlUp).Row Sheets("Plan1").Select Range("BO5").Value = i Range("BO3").Select ActiveCell.FormulaR1C1 = "=COUNTA(Mailing_Recebido!R[2]C[-66]:R[1048573]C[-66])" ActiveSheet.Calculate 'Range("BN3").Select Range("BM26").Select Range("BM26").Value = Range("BO8").Value Set A = CreateObject("Access.Application") A.Visible = False A.OpenCurrentDatabase (Caminho + "\Cria_Mailing.mdb") A.DoCmd.RunMacro "Executar" 'Range("bk22").Value = FileLen(Caminho + "\" + Range("c32").Value) Calculate 'Call XTo_txt Range("i27").Value = "Exportação Completada..." End Sub 

function“导出”调用2个新function“导入”,然后“导出”在这里是他们:

 Option Compare Database Function exporta() Dim rs As DAO.Recordset Dim caminho As String Dim NomeArq As String Set db = CurrentDb() Set rs = db.OpenRecordset("NOMEBASE") caminho = rs.Fields(0).Value + "\" + rs.Fields(1).Value DoCmd.TransferText acExportFixed, "Mailing_Envio", "BASE", caminho End Function Function importa() Dim rs As DAO.Recordset Dim inicio As String Dim fim As String 'DoCmd.TransferSpreadsheet acImport, , _ '"NOMEBASE", Application.CurrentProject.Path() + "\Abre_Envio_Novo_Layout.xlsm", True, "Plan1!BJ25:BM26" DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, _ "NOMEBASE", Application.CurrentProject.Path() + "\Abre_Envio_Novo_Layout.xlsm", True, "Plan1!BJ25:BM26" ' TypeExcel12 Set db = CurrentDb() Set rs = db.OpenRecordset("NOMEBASE") inicio = rs.Fields(2).Value fim = rs.Fields(3).Value 'DoCmd.TransferSpreadsheet acImport, , _ '"BASE", Application.CurrentProject.Path() + "\Abre_Envio_Novo_Layout.xlsm", True, "Mailing_Recebido!A:AX" ' + inicio + ":" + fim DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, _ "BASE", Application.CurrentProject.Path() + "\Abre_Envio_Novo_Layout.xlsm", True, "Mailing_Recebido!A:AX" ' + inicio + ":" + fim rs.Close End Function 

没有人有线索? =(

您是否尝试导入.xls文件,即使它是使用Excel 2010创build的? 因为所有 .xls文件的最大行数限制是65536。 您可以尝试一个.xlsx文件来查看它是否只导入65536行。