|
我用的是EXCEL2010,我把VBA80集第24集中示例文件中“数组方法”的代码复制到我自己的excel中并执行代码,发现有些小问题。我要达到的效果就是D列数据大于15000时,该行数据填充红色。由于我把D列数据弄得很大,从第一个数据大于15000以后,后面所有数据都大于15000,结果每填充25行后,就有一行没有填充。有谁可以解释一下为什么?
4 k4 |( [6 Z# c+ g" kSub 清除颜色() x8 A& v. I0 Q4 ~% O; C9 H/ w& ?) b
Range("a:d").Interior.ColorIndex = xlNone
6 `/ l( `9 b+ L+ }/ G( \End Sub/ d% T0 p$ O o5 h2 _/ ~
0 T/ ?% R- j, S' H. y
Sub 数组方法0()
( b8 o7 ?7 H; F Dim arr, t
1 j, t; s, v: Z- [$ L Dim x As Integer% I6 K+ ` T/ t( _8 u
Dim sr As String, sr1 As String: K Q+ N2 x. }+ }$ l( C* C
清除颜色8 X8 C! k# k1 a* y
t = Timer
+ u% A. B2 K y6 z; q arr = Range("d2:d" & Range("a65536").End(xlUp).Row)
. \, g6 {- E6 i( D# g- b# ~- r; q For x = 1 To UBound(arr)/ w( K4 d3 H. D8 l; I H' Y% w
If x = UBound(arr) And sr <> "" Then Range(Left(sr, Len(sr) - 1)).Interior.ColorIndex = 3% u3 u) A7 E( S4 x5 v* N. `$ |
If arr(x, 1) > 15000 Then
}* M7 R5 M2 x7 L. K sr1 = sr
. t/ P2 x4 U( R) X) y0 y# ^ sr = sr & "A" & x + 1 & ":D" & x + 1 & ","# k+ ?# ~! j# Z# L. Q0 ^. i
If Len(sr) > 255 Then+ P2 D1 \9 x" W5 X9 ~# T
sr = sr1
% F; ~2 N) Q1 D' \7 P- `3 I Range(Left(sr, Len(sr) - 1)).Interior.ColorIndex = 3
: d+ M) e* U4 x2 A7 o4 P1 W k sr = "", T, f1 O G! D4 X6 T
End If
+ U" M. u/ ~- l: q* i End If
5 K- I2 y. n( ]' a) X, Z Next x: T( ?( }; B; f
MsgBox Timer - t
. D- `9 G" J" H$ OEnd Sub
, A7 l" o! |. C! p, F( t4 t2 ]+ K' S0 L. c4 \3 _! M/ C+ Z
|
|