访问VBA:方法pastespecial的工作表类失败

我有一个VBA代码应该将筛选的查询数据导出到Excel。 当我通过一个OnClickbutton激活代码时,出现错误: Method pastespecial of worksheet class failed

我在Windows Server 2012 R2计算机上运行Access 2013

VBA代码:

 Private Sub cbExport_Click() On Error GoTo Command13_Click_Err DoCmd.RunCommand acCmdSelectAllRecords DoCmd.RunCommand acCmdCopy Dim xlapp As Excel.Application Set xlapp = CreateObject("Excel.Application") With xlapp .Workbooks.Add .ActiveSheet.PasteSpecial Format:="Text", _ Link:=False, _ DisplayAsIcon:= False .Cells.Select .Cells.EntireColumn.AutoFit .Visible = True .Range("A1").Select End With Command13_Click_Exit: Exit Sub Command13_Click_Err: MsgBox Error$ Resume Command13_Click_Exit End Sub 

用户界面的图片:

有人有一个想法?

几件事情错了:

  • 您似乎已经使用了早期绑定来xlAppvariables,但是使用后期绑定来初始化该variables。

  • 应该在范围对象上使用.PasteSpecial()方法,而不是表单对象。

  • 您似乎在.PasteSpecial方法上使用了错误的参数。

  • 粘贴方法应该是数值,是xlPasteType枚举的一部分


试试这个代码:

 DoCmd.RunCommand acCmdSelectAllRecords DoCmd.RunCommand acCmdCopy Dim xlApp As Excel.Application Set xlApp = New Excel.Application xlApp.Workbooks.Add xlApp.Visible = True With xlApp.ActiveWorkbook.ActiveSheet .Cells.PasteSpecial XlPasteType.xlPasteValues .Cells.EntireColumn.AutoFit End With