我有以下代码,我在网上找到并修改为可用于应用程序。它遍历每一行并执行范围值代码,直到出现空行。它工作得很好,除了它不包括最后一行。
有人能告诉我我的代码有什么问题吗?
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
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