我如何自动创buildExcel中的命名引用? 我希望每行的第一个字段是我的参考

我的电子表格的第一列是一个唯一的键(数据方面,与Excel无关)。 我的另一个列包含其他行的链接(到该行的唯一键)。 当我插入这些超链接时,我需要指向“已定义的名称”,因为行顺序将随着时间而改变。

我不希望每次插入新行时都必须创build定义的名称。 有没有办法自动定义一个列的文本作为“定义的名称”?

我希望这是明确的。

非常感谢。

您应该查看Workbook.Names或Worksheet.Names (如果您希望将定义的名称限制在工作表中)。

上面的链接中显示的例子是相当不错的。 在你的情况下,你会希望使用Range.Value或者在单元格中find的Range.Text作为Names.Add()方法的“Name”参数传入的string。

使用VBA它可能看起来像这样:

ThisWorkbook.Names.Add _ Name:=Sheet1.Range("A1").Text, _ RefersTo:=Sheet1.Range("A:A"), _ Visible:=True 

上面将列A的定义名称设置为在标题单元格A1中find的值(文本)。

希望这可以帮助!

麦克风

得到它了。 麦克·R把我放在正确的轨道上。 谢谢。

请注意需要删除名称的非字母数字字符。 而且,复制一个名字就会覆盖旧的引用。

 Private Sub Worksheet_Change(ByVal Target As Range) If (Target.Column = 1 And Target.Text <> "" And Target.Cells.Count = 1) Then ThisWorkbook.Names.Add _ Name:=StripChar(Target.Text), _ RefersTo:=Target, _ Visible:=True End If End Sub Function StripChar(s As String) As String With CreateObject("vbscript.regexp") .Global = True .ignorecase = True .Pattern = "[^\dA-Z]" StripChar = .Replace(s, "") End With End Function