VBA运行时错误'1004':应用程序定义或对象定义的错误。我究竟做错了什么?

时间:2019-08-15 07:42:24

标签: excel vba

我有一个Powershell脚本,它将生成CSV文件,其中包含18台以上服务器的所有可用存储空间。我现在正在尝试自动设置CSV文件的格式,因此看起来要好得多。我的问题是我的代码成功运行了一次,但是第二次运行又抛出了1004错误。

在进入StackOverflow之前,我的代码看起来更加混乱不清。我现在已经删除了其他一些错误,例如不必要地使用Activesheet,使用.Select等,但现在仍然找不到问题。

请在下面查看我的代码(请注意,我已注释掉的AutoFit部分是我尚未开始使用的部分)。

Sub A_AllToTable()
    Dim tbl As ListObject
    With Sheets(1)
        Set tbl = .ListObjects.Add(xlSrcRange, .UsedRange, , xlYes)
        tbl.TableStyle = "TableStyleDark11"
'        tbl.Columns.AutoFit
    End With
End Sub

当我从头打开工作簿并运行代码时,它会按预期运行。它将格式化表格。我希望将其设置为AutoFit并自动按大小排序,但是现在我只希望代码能够多次运行

有人可以提供一些无法解决问题的见解,以便将来避免再次犯同样的错误吗?

1 个答案:

答案 0 :(得分:1)

尤里卡!事实证明它没有运行,因为它试图在已存在的表之上创建另一个表。我添加了一些代码来首先确保工作簿没有格式和表格,现在没有错误发生!

感谢所有一直在寻求有关此问题的更多信息的人。你们都帮了大忙!

最终密码:

Sub A_AllToTable()
    Sheet1.ListObjects(1).Unlist
    Sheet1.UsedRange.ClearFormats
    Dim tbl As ListObject
    Set wks = ThisWorkbook.Worksheets(1)
    With wks
        Set tbl = wks.ListObjects.Add(xlSrcRange, wks.UsedRange, , xlYes)
        tbl.TableStyle = "TableStyleDark11"
'        tbl.Columns.AutoFit
    End With
End Sub