Как назначить имя ячейке в VBA, используя первое слово, которое она содержит? - PullRequest
1 голос
/ 08 января 2020

Я хотел бы автоматически и динамически дать имя каждой ячейке после заполнения. Это имя должно быть первым словом содержания ячеек.

Пример:

A1: CRC02 P2 2019
A2: CRC03 P2 2018
D6: CRC02 P1 2018

Я бы хотел, чтобы A1, а также D6 были названы: CRC02, а A2 - CRC03.

Я уточняю, что между некоторыми ячейками могут быть пустые строки и столбцы, потому что они на самом деле представляют карту. Ячейки, которые я хотел бы назвать, не на большом листе, они просто от А1 до 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

У кого-нибудь есть идея? Большое спасибо за ваше время.

Редактировать: Извините, я должен был действительно упомянуть основную цель. Как я уже сказал, все ячейки этой вкладки представляют карту. Одна ячейка - это местоположение одного товара в ящике. В другой вкладке у меня есть список всех продуктов с подробной информацией. Связанный со всеми этими деталями, я хотел бы создать гиперссылку на вкладку, содержащую карту, показывающую, где находятся продукты. Я сделал тест, и он работает довольно хорошо, показывая все разные места в разных ящиках одновременно. Единственное, что я должен назвать каждый отдельный продукт, создавая именованные диапазоны вручную, и это займет много времени, учитывая тот факт, что продукты могут покинуть ящик, а другие могут прибыть. Если бы мне пришлось создавать именованные диапазоны каждый раз, когда менялся один продукт, это не стоило бы.

...