【发布时间】:2021-07-04 11:40:09
【问题描述】:
我一直在尝试复制这个 VBA 按钮(遗憾的是 VBA 受密码保护)。它被称为“带顶部的名称范围”。
您在表格中的任意位置选择一个单元格并单击该按钮,它会为表格中的每一列创建一个本地命名范围(即工作表本地,而不是覆盖整个电子表格的全局命名范围),其名称为每列的顶部单元格,即列标题。
从按下按钮后观察工作表中发生的情况来看,首先选择整个表格,然后逐列选择整个表格,然后逐列选择整个表格。
所以给定表格: example table
如果我选择 B3:E8 中的任何单元格并按下按钮,它将创建命名范围:“Year”、“Sales”、“Profit”、“Loss”,涵盖 B4:B8、C4:C8、D4 :D8 & E4:E8 分别。
如果标题或工作表名称中的值中有空格,则会出现错误 - 这似乎是命名范围的通常要求,其名称中没有空格。
到目前为止,我认为我已经将“基于所选列创建命名范围”位放入 VBA,但我无法弄清楚如何让它选择整个表格,然后选择整个每列依次取该列的最高值作为名称(然后从命名范围中排除最高值):
Sub NamedRangeSelected()
Dim RangeName As String
'specify the name of the range
RangeName = "Name"
'create named range with workbook scope
ThisWorkbook.Names.Add Name:=RangeName, RefersTo:=Selection
End Sub
非常感谢任何帮助,因为它是一个非常有用的索引匹配工具,使公式更容易阅读。
【问题讨论】: