访问VBA以将动态Excel Excel电子表格导入为文本

时间:2017-03-21 18:31:43

标签: excel access-vba

我正在寻找一种方法来使用access vba将整个Excel电子表格导入为文本。这个问题的难点在于导入需要是动态的。我知道通常可以通过保存的导入或使用DoCmd.TransferSpreadsheet方法轻松完成导入,但不幸的是,这些不适合我的需要,因为列数和某些headername可能会在文件之间发生变化(这些是来自客户端的文件)因此我无法控制他们是如何进入的。显然,性能不是这种方法的优先考虑。

须藤代码:

Dim db AS DAO.Database
Dim file_to_import AS String

Set db = CurrentDb
Set file_to_import = "C:/Foo/bar/Access/Imports/FORIMPORT.xlsx"

'Read headers of spreadsheet into array
Loop through header row (A1:ZZ1) and create an array

'Create table creation string based on array
Creation_String = "CREATE TABLE TBL_Import ([Array_Element1]  TEXT(255), [Array_Element2]  TEXT(255), [Array_Element3]  TEXT(255), ...etc, etc"

'Create TBL_Import
CurrentDb.Execute Creation_String

'Import data
'(Imports data from file_to_import into TBL_Import)

与此问题有些相似,或许可以将此作为起点: [MS Access VBA script to interface with Excel

提前感谢您的帮助。我知道一些代码,但显然我还在学习VBA的细节。

1 个答案:

答案 0 :(得分:0)

简单的解决方法不是导入工作表,而是链接

然后你有一个附加(链接)表,你可以在一个简单的选择查询中用作源,你可以修改和/或转换值。

现在,请使用此查询进行进一步处理。