循环遍历行不包括最后一行

问题描述 投票:0回答:1

我有以下代码,我在网上找到并修改为可用于应用程序。它遍历每一行并执行范围值代码,直到出现空行。它工作得很好,除了它不包括最后一行。

有人能告诉我我的代码有什么问题吗?

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
excel vba
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.