Верните имя диапазона.

У меня есть список имен диапазонов (в основном одиночных ячеек) на листе. Когда я меняю ячейку под названием «Оценка», я хочу, чтобы ее значение отображалось в другом диапазоне под названием «GrdSrchSttng» (диапазон 6 x 1) в качестве последнего значения. Однако для этого мне нужно знать, что конкретная ячейка с именем «Оценка» изменилась. Решение этого вопроса не работает.

Я попробовал это:

Private Sub Worksheet_Change(ByVal Target As Range) Dim isIn As Boolean Dim i As Integer Dim r As Range Set r = ActiveSheet.Range("GrdSrchSttng") If Target.Name.Name = "Search!Grade" Then ' <== this si the line I have the issue with Select Case Target.Value Case "All" r.ClearContents r.Cells(1, 1).Value = "All" Case "" r.ClearContents Target.Value = "All" r.Cells(1, 1).Value = "All" Case Else If r(1, 1).Value = "All" Then r.ClearContents End If i = 1 Do While r(i, 1).Value <> "" If r(i, 1).Value = Target.Value Then isIn = True End If i = i + 1 Loop If Not isIn Then r(i, 1).Value = Target.Value End If End Select End If End Sub 

Лично использовать Target.Name.Name немного сложно. Вместо этого я предпочитаю использовать обходной путь для этого, поскольку он достигает в основном того же результата. Если вы специально не хотите отслеживать имя именованного диапазона, я предлагаю сделать что-то вроде следующего:

 Private Sub Worksheet_Change(ByVal Target As Range) Whatever = Range("Grade").Address If Target.Address = Whatever Then Range("GrdSrchSttng").Cells(1, 6).Value = Target.Value End If End Sub 

Скриншоты:

Настроить:

введите описание изображения здесь

Результат при редактировании Grade :

введите описание изображения здесь

Сообщите нам, если это поддаётся или иным образом. 🙂

  • Использование функции «Ячейки» в excel vba
  • Как установить Range из activesheet (или любого другого)
  • Удалите строку, если дата не соответствует
  • Ошибка при использовании String as Range (VBA Excel)
  • Как удалить отфильтрованные данные из электронной таблицы?
  • Исключение типа «System.OutOfMemoryException» произошло в mscorlib.dll, но не было обработано в коде пользователя
  • Применение Определенная или объектная ошибка 3
  • Как сделать абсолютный диапазон с функциями смещения в excel?
  • Создание массива и запись в excel-столбец с использованием функции Range с использованием Python
  • Поиск последнего столбца, а затем поиск последней строки в этом столбце
  • VBA - принимать значения из выбранного диапазона (F $ 1: F $ 100) в массиве
  • Давайте будем гением компьютера.