如何使用VBA中单元格包含的第一个单词为其指定名称?

如何使用VBA中单元格包含的第一个单词为其指定名称?,vba,cell,rename,Vba,Cell,Rename,我想自动和动态地给每个单元格命名,一旦填充。这个名字应该是单元格内容的第一个单词 例如: A1: CRC02 P2 2019 A2: CRC03 P2 2018 D6: CRC02 P1 2018 我希望A1和D6被命名为:CRC02,A2被命名为CRC03 我认为某些单元格之间可能有空行和空列,因为它们实际上代表一个映射。我想命名的细胞不是在一个大的表中,它们只是从A1到AW35 名称管理器无法在我的情况下工作,原因有两个: -我需要手工创建它们,以每个单元格的第一个单词命名。 -单元格内容

我想自动和动态地给每个单元格命名,一旦填充。这个名字应该是单元格内容的第一个单词

例如:

A1: CRC02 P2 2019
A2: CRC03 P2 2018
D6: CRC02 P1 2018
我希望A1和D6被命名为:CRC02,A2被命名为CRC03

我认为某些单元格之间可能有空行和空列,因为它们实际上代表一个映射。我想命名的细胞不是在一个大的表中,它们只是从A1到AW35

名称管理器无法在我的情况下工作,原因有两个: -我需要手工创建它们,以每个单元格的第一个单词命名。 -单元格内容可以更改,其名称也应相应更改

我在这个论坛上发现了这个宏代码,它似乎是我所寻找的东西的开始,但我不知道如何在我的情况下修改它,我想它需要一些更改。在这里,如果顶行中有一个值,它会将该值设置为该单元格的名称

Private Sub SortForContactsOutlookImport()
    Dim ThisCell As Object
    Dim NextCell As Object
    Dim RangeName As String

    Set ThisCell = ActiveCell
    Set NextCell = ThisCell.Offset(0, 1)

    Do
        If ThisCell.Value <> "" Then
            RangeName = ThisCell.Value
            ActiveWorkbook.Names.Add Name:=RangeName, RefersTo:=ThisCell
            Set ThisCell = NextCell
            Set NextCell = ThisCell.Offset(0, 1)
        End If
    Loop Until ThisCell.Value = "Web Page"
End Sub
私有子SortForContactsOutlookImport()
将此单元格设置为对象
Dim NextCell作为对象
将RangeName设置为字符串
设置ThisCell=ActiveCell
Set NextCell=ThisCell.Offset(0,1)
做
如果此单元格的.Value为“”,则
RangeName=ThisCell.Value
ActiveWorkbook.Names.Add名称:=范围名称,引用:=此单元格
设置ThisCell=NextCell
Set NextCell=ThisCell.Offset(0,1)
如果结束
循环直到ThisCell.Value=“网页”
端接头
有人有主意吗? 非常感谢您抽出时间

编辑: 很抱歉,我真的应该提到主要目标。 正如我所说,这个选项卡的所有单元格都表示一个映射。一个单元格是一个产品在抽屉中的位置。 在另一个选项卡中,我列出了所有产品的详细信息。与所有这些细节相关联,我想创建一个指向地图的超链接,其中包含显示产品所在位置的选项卡。
我做了一个测试,效果很好,同时显示了不同抽屉中的所有不同位置。唯一的一件事是,我应该手动命名每个产品,创建命名范围,考虑到产品可能会离开抽屉,而其他产品可能会到达,这将非常耗时。如果每次一个产品发生变化时我都必须创建命名范围,那就不值得了。

是否可以对多个范围使用相同的名称?或者你的意思是这个名字是多个单元格的集合?目的是什么?你打算用它们做其他事情吗?可能会跳过命名范围的创建,并最终使用条件。要做到这一点,您需要删除所有命名区域,并在每次单个单元格更改时重新创建它们。您希望通过此命名实现什么?名称必须是唯一的,因此您可能需要将示例中的A1和D6组合为一个范围并命名。Nathan_Sav,是的,我的意思是这个名字是多个细胞的集合。Scott Craner,也许你有一个想法,用另一种方式使用条件来显示/突出显示产品位置?SnowGroomer,我刚刚编辑了主要目标。你能在多个范围内使用相同的名称吗?或者你的意思是这个名字是多个单元格的集合?目的是什么?你打算用它们做其他事情吗?可能会跳过命名范围的创建,并最终使用条件。要做到这一点,您需要删除所有命名区域,并在每次单个单元格更改时重新创建它们。您希望通过此命名实现什么?名称必须是唯一的,因此您可能需要将示例中的A1和D6组合为一个范围并命名。Nathan_Sav,是的,我的意思是这个名字是多个细胞的集合。Scott Craner,也许你有一个想法,用另一种方式使用条件显示/突出显示产品位置?SnowGroomer,我刚刚编辑了主要目标。