我想创建一个Do While ...循环,它将遍历每个单元格 在一列中,检查每个单元格中的值是否为数字。它还应该记录第一个非数字条目之前有多少个数字
但是,我不知道用什么技术来逐步降级...这是我第一次尝试的(它是简化的并且假设从第1行开始在A列中有数字到任意一行):
Counter = 0
Iteration = Worksheets("Sheet1").Range("A1")
Do While IsNumeric(Iteration) = True And IsEmpty(Iteration) = False
Counter = Counter + 1
Iteration = Iteration.Offset(1,0)
Loop
但是,这不起作用,因为Offset(1,0)返回引用单元格中的值。所以,我需要类似于Offset的东西,但返回值类型为Range。谢谢!
答案 0 :(得分:1)
您需要将迭代声明为范围并设置它。
不需要计数:
Dim Iteration as Range
Set Iteration = Worksheets("Sheet1").Range("A1")
Do While IsNumeric(Iteration.Value) And Iteration.Value <> ""
Set Iteration = Iteration.Offset(1,0)
Loop
答案 1 :(得分:1)
Sub checkNumber()
For x = 2 To Range("a65536").End(xlUp).Row
If IsNumeric(Range("a" & x).Value) Then
Range("b" & x).Value = "this is a number"
Else
Range("b" & x).Value = "this is not a number"
End If
Next x
End Sub