|
Sub 数组方法2()
Dim arr, t
Dim x As Integer, x1 As Integer
Dim sr As String, sr1 As String
清除颜色
t = Timer
arr = Range("d2:d" & Range("a65536").End(xlUp).Row)
For x = 1 To UBound(arr)
If x = UBound(arr) Then Range(Left(sr, Len(sr) - 1)).Interior.ColorIndex = 3
If arr(x, 1) > 500 Then
sr1 = sr
x1 = x + 1
Do
x = x + 1
Loop Until arr(x, 1) <= 500
sr = sr & "A" & x1 & ":D" & x & ","
If Len(sr) > 255 Then
sr = sr1
x = x1 - 1
Range(Left(sr, Len(sr) - 1)).Interior.ColorIndex = 3
sr = ""
End If
x = x - 1
End If
Next x
MsgBox Timer - t
请教下
假定当For循环进行第400次循环(即X=400时),If arr(x, 1) > 500条件为真时X1=X+1=400+1=401,If Len(sr) > 255 条件为真时X=X1-1=401-1=400,当X=X1-1执行完后再执行x = x - 1时x = x - 1=400-1=399.这样For循环就会进行死循环,但是我运行代码时没出现问题请前辈再指点下我的疑问
|
|