访问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
用户界面的图片:
有人有一个想法?
几件事情错了:
-
您似乎已经使用了早期绑定来
xlApp
variables,但是使用后期绑定来初始化该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