DoCmd.TransferSpreadsheet无法识别工作表名称

时间:2018-07-16 20:13:19

标签: vba access-vba

代码如下:

strOut="C:\Users\....file.xlsx"
xlSheetName="WA100!"
DoCmd.TransferSpreadsheet TransferType:=acLink, TableName:="excelLink", FileName:=strOut, HasFieldNames:=True, Range:=xlSheetName

有没有理由不起作用?在我看来,这在语法上是正确的。

2 个答案:

答案 0 :(得分:1)

列出所有工作表名称,然后查看它们是否如您所想。

Sub SheetNames()
Columns(1).Insert
For i = 1 To Sheets.Count
    Cells(i, 1) = Sheets(i).Name
Next i
End Sub

答案 1 :(得分:0)

您可以试试吗?进行修改以满足您的需求。另外,您能摆脱“!”符号,至少用于测试目的。使它在简单的上下文中工作,然后您就可以逐步处理越来越复杂的事情。通常,从更复杂的事情开始不是一个好主意,除非您真的有信心知道自己在做什么。

DoCmd.TransferSpreadsheet acLink, 3, _ 
 "Employees","C:\Lotus\Newemps.wk3", True, "A1:G12"

对于与DoCmd.TransferSpreadsheet相关的主题,这是一个很好的资源。

http://access-excel.tips/access-vba-cocmd-transferspreadsheet/