如何修复 vba 运行时错误 1004?
在 Excel 中运行宏时发生 VBA 运行时错误 1004。出现此错误的原因有多种。在下面的示例中,如您所见,当我运行代码时,它显示运行时错误“1004”。简而言之,您也可以说当您无法使用对象或应用程序执行活动时,就会发生这种情况。
在本教程中,我们将了解导致此运行时错误 1004 的其他几个原因。
错误 1:VBA 运行时错误 1004:该名称已被占用。尝试另一个:
正如我上面分享的,当您尝试使用 VBA 代码添加工作簿中已存在名称的工作表时,VBA 会向您显示代码 1004 的运行时错误。
即使您尝试重命名工作表, VBA 也会出现相同的错误。
在上面的代码中,我尝试将工作表“Sheet2”重命名为“Sheet1”,但正如您所看到的,工作簿中已经有了“Sheet1”; VBA 显示错误代码 1004。
为了解决这个问题,您需要检查工作簿中是否已经存在工作表。
错误 2:VBA 运行时错误 1004:对象“_Global”的“Range”方法失败:
如您所知,您可以在 Excel 中创建命名范围,但是当您尝试使用 VBA 代码引用该命名范围并拼写错误其名称时,您可能会收到运行时错误 1004 对象“范围”方法“_Global”失败。
在下面的示例中,我有一个名为“myRange”的命名范围,但在编写宏时,我将其错误拼写为“myRang”,即使这是一个错误键入; VBA 不太聪明,无法识别此错误并引用正确的命名范围。
没有具有我提到的名称的命名范围,这就是为什么它向我显示运行时错误 1004。
错误 3:VBA 运行时错误 1004:无法选择类 Range 方法:
当您使用 VBA 代码选择不在活动工作表中的范围时,VBA 会显示运行时错误 1004。因为,如果您要选择一个单元格或单元格范围进行工作表计算,则该单元格当时必须处于活动状态。
如果sheet2 目前处于活动状态,则无法选择sheet1 中的单元格。
正如您在下面的示例中看到的,我在引用第一个工作表的单元格 A1 时犯了同样的错误,但工作表 2 处于活动状态。
处理此错误的最佳方法是首先激活工作表,然后编写一行代码来选择该工作表的单元格或范围。您还可以检查工作表是否处于活动状态,然后选择该工作表的单元格,如果不知何故该工作表未处于活动状态,您可以向用户显示一条消息以首先启用该工作表。
Error4:VBA运行时错误1004无法激活方法范围类:
就像上面的原因一样,当您尝试激活当前未激活的特定工作表中的单元格或单元格范围时,我们将向您显示运行时错误 1004(无法激活方法范围类:)。
在有关当我尝试激活sheet1中的单元格A1时出现运行时错误1004的示例中,活动工作表是sheet2。
要再次处理此错误,您需要检查您引用的工作表是否处于活动状态。或者您也可以检查该工作表是否存在于工作簿中。
Error5:VBA 运行时方法错误 1004 抱歉,我们找不到:
如果您尝试使用路径打开 Excel 文件,但该工作簿不存在,则它可能已被移动、删除或重命名。在这种情况下,VBA 将再次显示运行时错误 1004。
这就是以下示例中发生的情况,我尝试使用桌面路径打开文件,但该文件不存在,并且显示错误。
为了处理这种情况,您可以使用一些 VBA 代码来检查您引用的文件是否存在于文件夹中。
错误6:无法打开对象绑定器VBA运行时错误1004方法:
这个错误也与工作簿有关。因此,当您尝试打开一个工作簿时,该工作簿的名称已存在并且当前已打开,VBA 将显示运行时错误 1004(对象工作簿打开方法失败)。
上面的示例中也发生了同样的情况,我尝试打开一个已经打开的工作簿,VBA 显示了运行时错误 (1004)。
如何修复 VBA 执行时间(错误 1004)
错误 1004 是运行 VBA 代码时发生的运行时错误。我们上面讨论的所有错误都是由于编写代码时的人为错误造成的,遵循以下几点可以避免运行时错误 1004。
- 逐步执行代码以查看错误发生在哪一行。
- 请务必检查您引用的所有工作簿的名称。
- 您还可以使用 VBA 代码检查工作簿是否已打开。
- 并在引用工作表中的单元格或范围之前使用 activate 方法激活工作表。