我从SAP服务器上创建了一些数据,它发送给我一个Excel-2013文件,然后我将这个Excel文件导入Access-2013以供进一步处理。
我在导入数据的VBA代码中找到了字符串,如下所示:
DoCmd.TransferSpreadsheet acImport,"Ttable",fileName,True,"abclist$"
access中的表名为Ttable,excel电子表格命名为abclist。
到目前为止,这一进程一直运作良好。然而,最近数据量已经增加到超过104万个raws (这似乎是raws excel在一个电子表格中可以处理的最大数量),然后SAP-BI将其余的数据导出到第二个电子表格中,该电子表格名为abclist(1)。
如果有两个电子表格,我如何更改VBA代码来动态地允许这两个电子表格,如果超文件中只有一个电子表格,它将继续工作?
发布于 2021-02-12 23:46:23
打开excel文件,将工作表名称作为数组导入并执行命令。
Dim App As Object
Dim vFn() As Variant, v As Variant
Dim Wb As Object, Ws As Object
Dim n As Integer
Set App = CreateObject("Excel.Application")
Set Wb = App.workbooks.Open(FileName)
For Each Ws In Wb.worksheets
n = n + 1
ReDim Preserve vFn(1 To n)
vFn(n) = Ws.Name & "$"
Next Ws
Wb.Close (0)
Set Wb = Nothing
App.Quit
Set App = Nothing
For Each v In vFn
DoCmd.TransferSpreadsheet acImport, , "Ttable", FileName, True, v
Next v发布于 2021-02-15 09:17:42
我想将excel数据导入access。通常有两个电子表格"AAA“和BBB,这些电子表格将在Access中的两个表(名称为tAAA和tBBB)中被移植。
但有时,如果数据量很大,就会有一个3:rd电子表格名为"AAA(1)“。
如果不存在,如何忽略导入3:rd电子表格名称AAA(1)?如果它丢失了,我会收到错误消息。
DoCmd.TransferSpreadsheet acImport, , "tAAA", fileName, True, "AAA$"
DoCmd.TransferSpreadsheet acImport, , "tAAA", fileName, True, "AAA(1)$"
DoCmd.TransferSpreadsheet acImport, , "tBBBs", fileName, True, "BBB$"https://stackoverflow.com/questions/66178094
复制相似问题