尝试将数据从Excel文件(vrtSelectedItem)导入Access表(MAF),但在DoCmd行上收到“类型不匹配”错误。
数据位于名为“For Export”的工作表中,但我不确定我是否正确指出。但是,可能是其他的东西。
此外,数据位于命名范围“ExportRange”中。是否可以使用名称而不是指定单元格?
Dim fd As FileDialog
Dim vrtSelectedItem As Variant
Dim xl As Object
Dim wb As Object, ws As Object
'Dim data1 As Variant
'Select Excel file
Set fd = Application.FileDialog(msoFileDialogOpen)
With fd
.AllowMultiSelect = True
.Title = "Select one or more files"
.InitialFileName = InitPath
If .Show = True Then
Set xl = CreateObject("excel.application")
For Each vrtSelectedItem In .SelectedItems
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, MAF, vrtSelectedItem("For Export"), 0, "B1:B72"
Next
End If
End With
答案 0 :(得分:1)
如果要导入的数据位于命名范围(“ExportRange”),请将该名称用作 Range 参数。在这种情况下,甚至不要提及工作表名称。
TableName 参数应该是字符串值。我假设您要将数据导入名为“MAF”的表中,因此引用该表名。
DoCmd.TransferSpreadsheet TransferType:=acImport, _
SpreadsheetType:=acSpreadsheetTypeExcel9, _
TableName:="MAF", _
FileName:=vrtSelectedItem, _
HasFieldNames:=False, _
Range:="ExportRange"
我没有看到CreateObject("excel.application")
的价值。您似乎只需要一个简单的TransferSpreadsheet
操作,因此您不需要创建Excel应用程序实例。