Использование lastRow в диапазоне для функции изменения - PullRequest
0 голосов
/ 19 июня 2020

Прежде всего, вот код, который я использую:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$T$3" Then
   Range("BY3:BY & lastRow").Value = "Please Select..."
   Range("BX3").Value = "Please Select..."
   Range("AC3").Value = "Please Select..."
   Dim lastRow As Integer
lastRow = Range("A:BZ" & Rows.Count).End(xlUp).Row

  End If
End Sub

Моя цель состоит в том, чтобы каждый раз, когда любая ячейка в столбце T (а не только ячейка $ T $ 3) изменялась, затем столбец BY, BX и A C все будут изменены, начиная со строки 3, до последней использованной строки.

Как я могу этого добиться? В настоящее время я получаю следующую ошибку:

enter image description here

Я почти уверен, что я далеко, но я благодарен за помощь!

1 Ответ

0 голосов
/ 19 июня 2020

Пара вещей ....

  1. Используйте Intersect, чтобы проверить, не перекрывается ли измененная ячейка (Target) (Intersect) с Column T
  2. При использовании диапазона переменных переменная должна находиться вне кавычек. Все, что находится внутри кавычек, читается буквально. Ваш текущий метод относится к несуществующей строке: ошибка
  3. Вы должны присвоить свою последнюю строку (lr) переменной, прежде чем ссылаться на нее. В противном случае по умолчанию будет 0. Поскольку эта строка также не существует: ошибка
  4. Не используйте Dim lr as Integer - просто используйте Long, что является наилучшей практикой. Integer не покрывает количество доступных строк в Excel, что делает эту ошибку склонной. Long - это минимальная / полная переменная для использования, охватывающая любой возможный ввод строки.

Private Sub Worksheet_Change(ByVal Target As Range)

Dim lr As Long

If Not Intersect(Target, Range("T:T")) Is Nothing Then
    lr = Range("BZ" & Rows.Count).End(xlUp).Row
      Range("BY3:BY" & lr).Value = "Please Select..."
      Range("BX3:BX" & lr).Value = "Please Select..."
      Range("AC3:AC" & lr).Value = "Please Select..."
End If

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...