excel中不同页面的动态列查找

excel中不同页面的动态列查找,excel,excel-formula,vba,Excel,Excel Formula,Vba,我在excel中有一个多页的电子表格,需要从其他页面的列中动态读取信息,并将这些值显示在主页上 这是我使用的公式: =IF(VLOOKUP($B:$B,'CP01'!$B:$BN,3,FALSE)="r","r", IF(VLOOKUP($B:$B,'CP01'!$B:$BN,3,FALSE)="a","a","")) CP01是excel文件中的一张工作表,我希望它查看文件中的所有工作表,而不是查看特定的工作表 有没有一种方法可以作为excel公式或使用excel VBA来实

我在excel中有一个多页的电子表格,需要从其他页面的列中动态读取信息,并将这些值显示在主页上

这是我使用的公式:

=IF(VLOOKUP($B:$B,'CP01'!$B:$BN,3,FALSE)="r","r",
        IF(VLOOKUP($B:$B,'CP01'!$B:$BN,3,FALSE)="a","a",""))
CP01
是excel文件中的一张工作表,我希望它查看文件中的所有工作表,而不是查看特定的工作表

有没有一种方法可以作为excel公式或使用excel VBA来实现这一点

编辑:我还尝试了
CP*
(*是一个通配符),但没有成功


Edit2:是否有方法将“CP”所在的值与其其他列的值相匹配?

如果将此函数放置在
VBA
模块中:

Public Function sheetName(index As Long)
    On Error Resume Next
    sheetName = ThisWorkbook.Worksheets.Item(index).Name
    sheetName = IIf(Err.Number = 0, sheetName, CVErr(xlErrNA))
End Function
然后您可以这样做(列
B
显示列
A
的值):

所以现在从另一张表中引用单元格是这样的(列
B
显示列
a
的值):


我希望这能有所帮助?

如果您将此功能放在
VBA
模块中:

Public Function sheetName(index As Long)
    On Error Resume Next
    sheetName = ThisWorkbook.Worksheets.Item(index).Name
    sheetName = IIf(Err.Number = 0, sheetName, CVErr(xlErrNA))
End Function
然后您可以这样做(列
B
显示列
A
的值):

所以现在从另一张表中引用单元格是这样的(列
B
显示列
a
的值):


我希望这能有所帮助?

仍然无法真正理解您想要实现的目标…“CP01”是此公式中的硬编码值。但是,当与它对应的列一起使用时,它需要更改值。因此,如果A列显示“CP02”,则B列公式中的值需要更改为该值。仍然不了解您想要实现的目标…“CP01”是此公式中的硬编码值。但是,当与它对应的列一起使用时,它需要更改值。因此,如果A列显示“CP02”,则B列公式中的值需要更改为该值。这有助于并使其成为,但我需要单元格A的值进入单元格B中的公式。我可以使用此模块执行此操作吗?是:更改此部分
“CP01”$假设
CP01
是您的第一张工作表,则代码中有
INDIRECT(sheetName(1)和“!$B:$BN”)
。如果
CP01
是您的第二张工作表,请改用
sheetName(2)
。要自动扫描所有工作表,请从第1行开始计算公式,当您向下拖动它时,
sheetName(row())
将为您提供文件中第1张工作表的名称。这有助于并使,但是我需要单元格A的值进入单元格B中的公式。我可以使用此模块进行此操作吗?是:更改此部分
“CP01”$假设
CP01
是您的第一张工作表,则代码中有
INDIRECT(sheetName(1)和“!$B:$BN”)
。如果
CP01
是您的第二张工作表,请改用
sheetName(2)
。要自动扫描所有工作表,请从第1行开始计算公式,当您向下拖动它时,
sheetName(row())
将为您提供文件中第1张工作表的名称。