在不引用原始工作表的情况下跨工作表使用 VLOOKUP

在不引用原始工作表的情况下跨工作表使用 VLOOKUP

我有一个工作簿,它运行一些宏来从其他许多工作簿中提取工作表的副本。我试图设置一个文件,用户可以将其复制到他们的项目文件夹中,然后只需使用,而不必VLOOKUP每次都设置公式。因此,他们将文件 NewProject.xlsm 从服务器复制到他们的项目文件夹,然后使用宏从服务器上的 100 系列、110 系列或 120 系列工作簿中提取他们需要的不同工作表。

100 系列工作簿中有一个名为 ItemsE 的工作表,其中包含VLOOKUP两列,另一列包含数据验证。当用户将 100_1A 工作表拉入其项目文件时,它会拉取VLOOKUP,但它引用的是原始文件。

NewProject 文件中还包含 ItemsE 表,其中包含所有相同的信息。我的问题是,我是否能够VLOOKUP在 100_1A 和 100_1C 表上使用 100 系列工作簿中的公式,并让其引用 NewProject 文件中的 ItemsE 表,而不是 100 系列文件中的 ItemsE 表?我最初在 100 系列文件中放置了以下公式。

=VLOOKUP(D24,ItemsE!A:C,2,FALSE)

当我将我需要的 100 系列表导入 NewProject 文件后,打开该文件时,公式显示为:

=VLOOKUP(D22,'W:\Design\[C_DE100Series.xlsm]ItemsE'!A:C,2,FALSE)

有办法解决这个问题吗?它对数据验证也有效吗?

感谢您的帮助,抱歉解释得太长了。如果您需要我提供更多信息,请告诉我。

答案1

您可以在工作表公式中为 ItemsE 定义一个通用名称。

例如,使名称引用“地点”。当您将工作表拖到接收工作簿时,不会使用为接收工作簿定义的名称,并且“地点”仍将引用发送工作簿的名称定义。

您可以使用宏来删除刚刚拖到接收工作簿的活动工作表上的旧位置。

ActiveWorkbook.Names("place").Delete

发生这种情况时,将使用接收工作簿中已定义的名称。

相关内容