Expert Author Richard Peck
如果您使用的是Excel,则可能会遇到"运行时错误424"错误,并显示"所需对象"消息。

这是VBA(Visual Basic for Applications)的错误,并且基本上显示了引用不存在或超出当前范围的对象的情况。

如果您将错误视为某人在excel电子表格中"开发"任何宏/自动化功能,那么可能的问题是您正在调用一个对象"断章取义"。 这意味着您可能已经加载了一个对象,但其内容可能已被更改或替换。 还有其他一些潜在的问题,我将在本教程中解释的修复。..

原因

您将看到的错误将具有以下消息:

运行时错误'424'

需要的对象

为了解释为什么错误显示,这意味着什么-微软在90年代后期发布了着名的"Visual Basic"包。

这为系统提供了基本功能,允许业余爱好开发人员创建简单的应用程序。 VB是一个很大的打击。

正因为如此,微软在他们的Office软件套件中引入了"VBA"(Visual Basic For Applications),即Excel和Word。 这允许开发人员类型在Excel电子表格中创建自动化功能,在工作表中引用"对象"等。

每次使用Visual Basic时,你所做的就是在内存中调用一系列"对象"。 这些对象只是应用了一系列额外功能的变量,包括自定义函数等。 这个问题-这延伸到大多数编程语言-是,如果你引用一个尚未被调用的对象,应用程序将失败。

解决方案

如果你想解决这个问题,你需要首先确保数据存在于系统中,然后你能够正确地引用它。 本教程将解释如何:

1. 确保已正确定义了变量

主要的问题是你在一个不存在的变量(对象)上调用了一个方法。 最常见的原因是你只是拼错了变量的名字,因此没有在你的VBA应用程序中声明它。 以下示例:

子测试()

应用33。工作表功能.Sum(Range("A1:A100"))

结束子

以上将引发错误,因为您尝试在"Application33"引用的对象上调用WorksheetFunction方法。

不幸的是,Application33对象不存在于内存中,从而阻止应用程序加载它。 为了解决这个问题,你需要通过你的源代码(错误的引用几乎总是被引用),并correct正任何拼写错误的对象名称。

2. 如果使用Excel,请确保存在范围/选择器

错误的最常见原因之一是您尝试引用不存在的对象或值。 这是使用VLookup或ActiveX对象之类的典型问题。 如果遇到此错误,则需要确保代码仅引用存在的对象:

私人子测试()

这将引发错误

应用。工作表功能.VLookup(TeamName,范围("TeamNameLookup"),3,假).价值

值应该是

应用。工作表功能.VLookup(TeamName,床单("YourSheetName").范围("TeamNameLookup"),3,假)

结束子

上面的意思是你试图调用各种工作表,以及它们各自的"范围"/"值"函数,而没有找到或声明工作表。 要解决此问题,您需要确保在分别作用域对象上调用"范围"或"值"。

3. 确保您具有正确的定义

最后,错误的一个更常见的原因是你没有正确定义你的变量。

从错误地将变量定义为错误的对象定义,到调用"Option Explicit",您可能会尝试引用未定义的变量/对象,因为它们没有被正确定义。

例如。..

选项显式

私人子测试()

在这里,您需要在尝试引用/填充变量之前明确声明变量

例如。..

将your_path变暗为字符串

设置your_path="x/y/z"

结束子

在上面的例子中,如果在尝试设置之前没有声明"your_path"变量,则最终会出现424错误(因为"your_path"对象不存在)。 从这里,您还需要确保您能够调用相关对象(如果您正在引用工作表值,则需要确保工作表存在并且可以加载)。

显然,还有许多其他错误实例。 由于每个人的代码的特定性质是不同的,我不能通过每一个潜力。 希望你可以看到错误是由系统上的无效变量引用引起的。

如果您仍然遇到错误,则表明您对源代码有进一步的问题。 我建议进一步修复这个问题是寻求特定的支持,无论是从您的系统管理员还是从别人更精通你的系统的复杂性。