|
本帖最后由 xjsquall 于 2013-11-10 21:51 编辑
llh505 发表于 2013-5-28 10:28
我把最后一行改成大于500的数,运行数组方法一,最后一行没有填充;数组方法二显示下标越界,这是怎么回事?
我也发现了这个问题,个人认为应该这么改一下- Sub 数组方法3()
- 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 arr(x, 1) > 500 Then
- sr1 = sr
- x1 = x + 1
- On Error Resume Next
- Do
- x = x + 1
- Loop Until arr(x, 1) <= 500
- On Error GoTo 0
-
- sr = sr & x1 & ":" & x & ","
- If Len(sr) > 255 Then
- sr = sr1
- x = x1 - 1
- Application.Intersect(Range("a:d"), Range(Left(sr, Len(sr) - 1))).Interior.ColorIndex = 3
- sr = ""
- End If
- x = x - 1
- End If
- If x = UBound(arr) Then Application.Intersect(Range("a:d"), Range(Left(sr, Len(sr) - 1))).Interior.ColorIndex = 3
- Next x
- MsgBox Timer - t
- End Sub
复制代码 |
|