Я пишу подпункт worksheet_change, чтобы изменить форматирование ячейки, содержащей текст.
Текст представляет собой имя клиента, и клиент получает прайс-листы от двух наших брендов. Таким образом, у меня есть две записи о клиентах для них, как «Клиент (Марка 1)» и «Клиент (Марка 2)», тогда как для другого клиента с одним брендом у них есть только одна запись «Клиент». Эти клиенты являются оптовыми торговцами электрооборудованием, и мы поставляем им кабель для некоторого контекста ...
Две записи должны различать их на листе, но я бы не хотел, чтобы название бренда отображалось в прайс-листе. Он должен отображать только название их компании, а брендинг будет покрываться самим прайс-листом.
При использовании макро-рекордера для ручного изменения форматирования на «Клиент» возвращается следующий код:
Cells(7,3).NumberFormat = ";;;""Customer"""
Так что я использую это как шаблон и воссоздаю его, используя ячейку "target", которая называется "Customer (Brand)":
Brand = Replace(Target, " (Brand)", "")
Cells(7, 3).NumberFormat = ";;;" & """""" & Brand & """"""
При наведении курсора на это в режиме отладки (?) Всплывающее окно читается точно так же, как и код, указанный выше регистратором. Но это не работает. Я получаю сообщение об ошибке «Невозможно установить свойство NumberFormat класса Range».
Мой полный код (любые другие советы приветствуются!):
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row <> 7 Or Target.Column <> 3 Then Exit Sub
Dim Debrand As String
Debrand = Replace(Target.Value, " (Brand)", "")
Application.EnableEvents = False
Cells(7, 3).NumberFormat = ";;;" & """""" & Debrand & """"""
Application.EnableEvents = True
End Sub
Большое спасибо.