我有以下代码,这些代码是我在网上找到的,并经过修改后可用于May应用程序。它遍历每一行并执行范围值代码,直到出现空白行。除了不包含最后一行,它的工作原理很棒。
有人可以告诉我我的代码有什么问题吗?
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
答案 0 :(得分: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