0

我有以下命名范围(其中一些是 INDEX/MATCH 动态范围)及其随附的公式,它们出现在我的工作簿的名称管理器中:

  • Q1_BusinessWorkd_ID ='Q1 数据'!$C$35:INDEX('Q1 数据'!$G$35:$G$1048576,MATCH("zzzzz",'Q1 数据'!$C$35:$C$1048576,1)-1)
  • Q1_Data ='Q1 数据'!$B$35:INDEX('Q1 数据'!$CF$35:$CF$1048576,MATCH("zzzzz",'Q1 数据'!$C$35:$C$1048576,1))
  • Q1_Data_Start ='Q1 数据'!$B$35
  • Q1_Row1_Column_Formulas ='Q1 数据'!$H$35:$CF$35
  • Q1_Vlookup_Data ='Q1 数据'!$C$35:INDEX('Q1 数据'!$CF$35:$CF$1048576,MATCH("zzzzz",'Q1 数据'!$C$35:$C$1048576,1))

可以使用以下 VBA 代码将不包含 INDEX 和 MATCH 语句的公式添加到工作簿的命名范围:

ActiveWorkbook.Names.Add Name:="Q1_Data_Start", RefersTo:="='Q1 Data'!$B$35"
ActiveWorkbook.Names.Add Name:="Q1_Row1_Column_Formulas", RefersTo:="='Q1 Data'!$H$35:$CF$35"

但是,包含 INDEX 和 MATCH 语句的公式会生成编译语法错误。我不知道如何更正 INDEX - MATCH 公式的语法以不产生语法错误。

有谁知道如何纠正这个问题?

4

1 回答 1

1

您需要通过将它们加倍来转义字符串中的任何双引号(例如)

...MATCH("zzzzz", ...

应该

...MATCH(""zzzzz"", ...
于 2021-03-01T17:58:42.260 回答