зацикливание строки не включает последнюю строку - PullRequest
0 голосов
/ 29 апреля 2019

У меня есть следующий код, который я нашел в сети и изменил для работы в майском приложении. Он проходит по каждой строке и выполняет код значения диапазона, пока не появится пустая строка. Он прекрасно работает, за исключением того, что не включает в себя последний ряд.

Может кто-нибудь сказать мне, что не так с моим кодом?

Application.ScreenUpdating = False
      NumRows = Range("A2", Range("A2").End(xlDown)).Rows.Count
      Range("A2").Select
      For x = 2 To NumRows
         ' Insert your code here.
         If ActiveSheet.Range("T" & x).Value > 1 Then ActiveSheet.Range("G" & x).Value = "YES" ' Else
         If ActiveSheet.Range("T" & x).Value < 1 Then ActiveSheet.Range("G" & x).Value = "NO" ' Else
      '   ActiveCell.Offset(1, 0).Select
      Next
      Application.ScreenUpdating = True

1 Ответ

0 голосов
/ 29 апреля 2019

Значение переменной NumRows будет на 1 меньше, чем номер последней строки, потому что вы начинаете счетчик строк в строке 2. Это можно увидеть, если вы пошагово просматриваете код с помощью F8 и просматриваете переменную.

Это можно исправить разными способами.

использовать NumRows = Range("A1", Range("A2").End(xlDown)).Rows.Count

или используйте NumRows = Range("A2", Range("A2").End(xlDown)).Rows.Count + 1

или используйте For x = 2 To NumRows + 1

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