【发布时间】:2021-03-09 19:08:05
【问题描述】:
我在工作簿中有单元格链接到(单独)命名的单元格。单元格名称都以“Filter”开头,后面是一些字符串(例如FilterSubcategory1“)。
如果用户单击其中一个链接,它会将它们带到链接的单元格,然后根据目标所在的位置过滤另一个工作表(目前使用.Address,一切正常)。由于它们的名称中都有相同的起始字符串,如果目标名称以“Filter”开头,是否可以进行过滤?这将使我的代码更短,而不是列出所有相关的命名范围。
它看起来像这样(出于说明目的,不是我的完整或优化代码):
If Target.Range.Name = "Filter" & "*" Then
'rest of code, do the filtering
End If
或:
If InStr(Target.Range.Name, "Filter") > 0 Then
'rest of code, do the filtering
End If
【问题讨论】:
-
您可以遍历所有
Names,检查它们是否以Filter开头,然后检查它们的RefersToRangeIntersects 是否以Target开头。我不认为Range.Name很可靠。 -
你能更好地解释一下“超链接目标的名称”是什么意思吗?它是一个真正的范围名称吗?是用来设置超链接地址/子地址的吗?
-
目标是一个命名范围,超链接子地址指向目标的名称,而不是单元格引用(A1 等)。我想这就是你的意思。
-
然后,您可以构建一个检查它的函数。它应该看起来像,但我会更好地发布一个答案,也看看如何检查......
标签: excel vba named-ranges