У меня есть список имен в колонке листа А.

 A
---
Robby
Harry
Nick

В любой ячейке, когда я ввожу имя и нажимаю на другую ячейку. Если введенное имя отсутствует в списке, фокус не должен перемещаться в другую ячейку. Я не должен быть в состоянии выбрать другую ячейку или переместить курсор.Курсор должен быть направлен только на введенную ячейку. Курсор должен быть заблокирован, пока я не введу имя, указанное в списке. Как только я введу имя в данный список, я смогу переместить курсор в другую ячейку.

Итак, как я могу привязать курсор к определенной ячейке и сосредоточиться только на этой конкретной ячейке, используя код VBA в Excel.

1 ответ1

1

Поместите следующие макросы событий в область кода рабочего листа:

Private Sub Worksheet_Change(ByVal Target As Range)
   If Intersect(Target, Range("A:A")) Is Nothing Then
      v = Target.Value
      Dim r As Range
      If Range("A:A").Find(what:=v, after:=Range("A1")) Is Nothing Then
         Target.Select
         Stuck = True
         Set rStuck = Target
      Else
         Stuck = False
      End If
   End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
   If Stuck Then rStuck.Select
End Sub

Поместите следующее в стандартный модуль:

Public Stuck As Boolean
Public rStuck As Range

Обратите внимание, что этот код позволит вам вносить изменения в столбец A, но накладывает ограничения на изменения в любом другом столбце.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .