【发布时间】:2021-05-14 23:22:28
【问题描述】:
大家好,
在添加新单元格行时,excel 中有什么方法会自动创建一个与在 cenll 行中创建的名称相同的新列吗? 例如,在图片中,我有名称为 2:5 的行和具有相同名称的 B:E 列,但以防万一,例如,我想在第 2:3 行之间添加一个名为“Legs”的新行(Head和鼻子),它会自动在 B:C(头和鼻子)之间创建一个名为“腿”的新列。 由于我不知道 VBA,有什么办法可以做到这一点?
谢谢
【问题讨论】:
大家好,
在添加新单元格行时,excel 中有什么方法会自动创建一个与在 cenll 行中创建的名称相同的新列吗? 例如,在图片中,我有名称为 2:5 的行和具有相同名称的 B:E 列,但以防万一,例如,我想在第 2:3 行之间添加一个名为“Legs”的新行(Head和鼻子),它会自动在 B:C(头和鼻子)之间创建一个名为“腿”的新列。 由于我不知道 VBA,有什么办法可以做到这一点?
谢谢
【问题讨论】:
正如您所指出的,这可以在 VBA 中完成,但如果我们退后一步,您实际上可以在没有它的情况下完成。不使用 VBA 的一种方法是使用 TRANSPOSE() 函数和动态命名范围。
首先,您需要在A列中指定源值的动态范围。按Ctrl + F3进入名称管理器,选择New,为其命名,然后在Refers to中输入以下公式:
=OFFSET(Sheet1!$A$1,1,0,COUNTA(Sheet1!$A:$A),1)
显然,将 Sheet1 替换为工作表的名称。按 OK 后,您应该会得到如下结果:
接下来,转到单元格 B1 并输入以下公式:
=TRANSPOSE(sourceHeadings)
将文本“sourceHeadings”替换为您刚刚创建的范围的名称。
当您向 A 列中的列表添加更多内容时,它们将出现在第 1 行的顶部。
更多阅读可以在这里找到:
【讨论】: