为标题和列创建名称,但键入一次

时间:2015-06-17 22:03:47

标签: excel

我正在尝试设置其他人使用的电子表格集合。我在每列的第一行放置标签,在这种情况下我认为它们是标题。我知道如何在Excel中命名列(至少2010年可以让你这样做)。

如果我的标题为“更高”和“更低”的列,并且列也有这些名称,那么给定行中的公式“=更高+更低”将使用该行中这些列的值计算结果。

我想最终得到的描述性列名与标题值相同。我想要一种方法来从列名创建标题,或从标题创建列名,所以我不必输入两次。我有很多专栏和多个电子表格来完成这项工作;我只是想保存两次输入,最初都是在更改时保持更新。

1 个答案:

答案 0 :(得分:1)

手动:选择所需的列并转到公式功能区>从选择中创建,勾选“顶行”并点击“确定”。在第1行中更改了值时重复。

使用VBA:在工作表中使用此代码

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Range("1:1"), Target) Is Nothing Then
    For Each cel In Target
        Debug.Print cel.Column
        Columns(cel.Column).Select
        Selection.CreateNames Top:=True, Left:=False, Bottom:=False, Right:=False
        cel.Select
    Next cel
End If
End Sub

如果将相同的值复制并粘贴到多个单元格中,Excel将创建第一个名称,然后在要替换现有名称时提示其他单元格。

更改第1行中的单元格将创建新的范围名称。旧的范围名称仍将保留。

如果您有可以解释为单元格地址的值,例如A1,则Excel会在范围名称中添加_符号,例如A1_。如果在第1行中输入数字,Excel将不会创建范围名称。