Tag: 运行时错误

Excel错误代码1004 – 方法打开对象工作簿失败

我有这个代码,完全在另一个模块中工作,但是当我把它复制到我现在正在工作的模块上时,它会抛出 “对象工作簿打开错误1004方法失败” 当我通过对话框input文件或者让程序为自己决定,我不知道为什么,因为它看起来很平庸,并没有太多的select,哪里可以出错,在"Set TlWb"的行上。 我很确定我提供给程序的path是正确的,一切都是正确的。 这里是代码: 'opens open prompt for ABII Parallel Import Tracker – Month/Year.xlsx, on cancel opens actual month MsgBox "Select ABII Parallel Import Tracker – Month/Year.xlsx file to open. Cancel opens actual month" With Application.FileDialog(msoFileDialogOpen) .Show If .SelectedItems.Count = 1 Then TlWbPath = .SelectedItems(1) End If End With If TlWbPath <> "" […]

检测对象是否与客户端断开连接

我在自动化Excel文件时遇到问题。 Excel中的VBA脚本首先打开一个Word应用程序和Word文档: Dim wordApp As Object Set wordApp = CreateObject("Word.Application") vPath = Application.ActiveWorkbook.Path Set wordDoc = wordApp.Documents.Open(vPath & "\test.doc") 然后我调用Word文档中的一个子例程,从Excel文件中传递一些数据: Call wordApp.Run("StartWithData", variable1, variable2) 如果Excel检测到在该子例程中发生错误,我将从Excel中closuresWord文档和Word应用程序,并在标签中调用Err1 : On Error Goto Err1 'all the code from above Exit Sub Err1: wordDoc.Close wdCloseWithoutSaving wordApp.Quit SaveChanges:=wdDoNotSaveChanges Set wordDoc = Nothing Set wordApp = Nothing 在正常情况下,这样做是完美的。 但是,如果在执行Err1标签(如用户手动closures文档)之前closuresWord文档或应用程序,则会出现以下错误: 运行时错误“-2147417848(80010108)”: 自动化错误被调用的对象与客户端断开连接。 这是非常有意义的,因为wordApp和/或wordDocvariables仍然引用Application和Document对象,并且这些对象不再存在(但也不被认为是Nothing […]

如何使Excel VBA代码完全合格/如何规避运行时错误?

我写了一些VBA代码,dynamic设置一些图表的属性,如数据范围,打开我的Excel文件。 这是因为我用来从我的.Net项目导出Excel的库不完全支持图表属性。 我有4个图表和1个数据表在这个文件。 但是,在文件首次打开时,会显示以下错误: Run-Time Error: '-2147417848 (80010108)': Automation The object invoked has disconnected from its clients. (同样,第一次打开,警告显示该文件可能是不安全的,我手动必须允许打开,但我不知道这是否有任何关系到这个问题) 此文件的后续打开不会触发错误。 我search了stackoverflow和论坛,并发现这个微软知识库文章 基于在那里给出的build议,我试图让我的代码完全合格(例如使用Dim app As Application和Dim wb As Workbook )。 但是,这并没有解决我的问题。 违规行标有** 我的问题是: 我没有使我的代码的某些部分完全合格吗? 这个错误是否还有其他可能的原因,如果是的话,他们如何解决? 我的代码(在ThisWorkbook对象中): Option Explicit Private Sub Workbook_Open() Dim app As Application Set app = Excel.Application Dim wb As Workbook Set wb = app.ThisWorkbook […]

Excel:错误中断不能在用户定义的函数中使用

看起来,当从单元格公式(即“用户定义函数”或UDF)调用VBA代码时,通常的VBA Break On Error不起作用。 我唯一可以find这种行为的地方是一篇名为“为Excel 2007和Excel Services开发用户定义的函数”的文章中的几行: error handling返回#VALUE错误。 由UDF代码抛出的所有exception都以#VALUE错误的forms返回到Excel工作表中。 即使您将Error Trapping设置为“Break on All Errors”并单步执行代码**,您也将永远无法看到VBA运行时错误对话框–Excel只是静静地放弃执行,而不会告诉您哪里出错了。 当然,这使得debugging比需要更困难。 有一些潜在的解决方法涉及On Error但是我宁愿不要混淆我的代码,只是为了找出引发错误的位置。 是否有一些Excel / VBA选项,我忽略了这将使Break On Error正常工作? 我正在使用Excel 2003。 **从单元调用时进入debugging器的唯一方法是设置断点或使用Stop语句

运行时错误1004'无法获取数据透视表类的PivotFields属性'

我真的不知道这个错误意味着什么…我试图使用代码来select一个数据透视表中的子头之一下的所有行。 我得到运行时错误1004“无法获得透视表类的PivotFields属性”。 这里是代码: Sub ttest() Dim pt As PivotTable Set pt = Sheets("Report").PivotTables("PivotTable1") pt.PivotFields("Row Labels").PivotItems("CL").DataRange.Select End Sub