2013-08-29 84 views
0

感谢您的帮助和支持。我对excel很陌生,这可能是一个基本问题。Excel宏错误:“错误1004:应用程序违反或对象定义错误”

我想运行一个宏来将访问查询结果导出到excel。我计划自动运行宏,每周运行一次,以便将结果导出到相同的excel中,但不同的标签命名为date。我已经记录了一个宏来这样做,并尝试第二次运行该宏,并抛出错误以下。

"Error 1004: application defied or object defined error"

,并指向这行代码.ListObject.DisplayName = "Table_Speed.accdb_16"

Sub Macro_Query3() 

    Dim ws As Worksheet 

    For Each ws In Worksheets 
     If Left(ws.Name, 8) = Format(Now(), "mm-dd-yy") Then x = x + 1 
    Next 

    Sheets.Add.Name = Format(Now(), "mm-dd-yy") & " (" & x + 1 & ")" 

    With ActiveSheet.ListObjects.Add(SourceType:=0, Source:=Array(_ 
     "OLEDB;Provider=Microsoft.ACE.OLEDB.12.0;Password="""";User ID=Admin;Data Source=C:\s" _ 
     , _ 
     "peed\Speed.accdb;Mode=Share Deny Write;Extended Properties="""";Jet OLEDB:System database="""";Jet " _ 
     , _ 
     "OLEDB:Registry Path="""";Jet OLEDB:Database Password="""";Jet OLEDB:Engine Type=6;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global" _ 
     , _ 
     " Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="""";Jet OLEDB:Create System Database=Fal" _ 
     , _ 
     "se;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;" _ 
     , "Jet OLEDB:SFP=False;Jet OLEDB:Support Complex Data=False"), Destination:= _ 
     Range("$A$1")).QueryTable 
     .CommandType = xlCmdTable 
     .CommandText = Array("Final") 
     .RowNumbers = False 
     .FillAdjacentFormulas = False 
     .PreserveFormatting = True 
     .RefreshOnFileOpen = False 
     .BackgroundQuery = True 
     .RefreshStyle = xlInsertDeleteCells 
     .SavePassword = False 
     .SaveData = True 
     .AdjustColumnWidth = True 
     .RefreshPeriod = 0 
     .PreserveColumnInfo = True 
     .SourceDataFile = _ 
     "C:\speed\Speed.accdb" 
     .ListObject.DisplayName = "Table_Speed.accdb_16" 
     .Refresh BackgroundQuery:=False 
    End With 
End Sub 

任何帮助将不胜感激。

回答

0

,如果你改变这一行

.ListObject.DisplayName = "Table_Speed.accdb_16" 

ActiveSheet.ListObjects(1).DisplayName = "Table_Speed.accdb_16" 
+0

感谢您的快速更新,会发生什么。它仍然抛出同样的错误。当我评论该行时,它按照我的要求工作,但我不确定是否可以对此行进行评论。 –

+0

使用.Name代替.DisplayName怎么样? – dendarii

相关问题