|
我用的是EXCEL2010,我把VBA80集第24集中示例文件中“数组方法”的代码复制到我自己的excel中并执行代码,发现有些小问题。我要达到的效果就是D列数据大于15000时,该行数据填充红色。由于我把D列数据弄得很大,从第一个数据大于15000以后,后面所有数据都大于15000,结果每填充25行后,就有一行没有填充。有谁可以解释一下为什么?0 R- L4 L* w$ S
Sub 清除颜色()
+ r9 Z0 w6 X/ M2 N. T7 a3 U. f, gRange("a:d").Interior.ColorIndex = xlNone
7 D) Z: |; C9 M. T7 o. W6 sEnd Sub
& f% t+ A- q3 x! h
4 x$ ?) I$ z" x4 C4 e' gSub 数组方法0()
2 z, S4 ?* K: h8 b, ~ Dim arr, t
; @# H8 I$ A6 T; a Dim x As Integer# ]6 i9 [6 C$ S0 t& O
Dim sr As String, sr1 As String
# z+ {' O; v' R& J$ C9 I: ]. y 清除颜色
2 ~, Y! f- w! o% k' T$ j u t = Timer
% C+ @6 m- `3 u N/ w1 w8 _- _ arr = Range("d2:d" & Range("a65536").End(xlUp).Row)
) X# e- O9 L) q For x = 1 To UBound(arr)
1 v! l! d1 [9 a If x = UBound(arr) And sr <> "" Then Range(Left(sr, Len(sr) - 1)).Interior.ColorIndex = 31 m2 y8 x, M( g0 z
If arr(x, 1) > 15000 Then) m, C8 B$ d9 C; E- x5 x
sr1 = sr) v' ]) ?9 x4 s2 t9 l6 @
sr = sr & "A" & x + 1 & ":D" & x + 1 & ",". g8 i5 P3 J% @! l9 e9 Z
If Len(sr) > 255 Then" @/ [( J' M4 m- Y1 J# p( c
sr = sr1) u7 e8 |5 H b( c
Range(Left(sr, Len(sr) - 1)).Interior.ColorIndex = 34 U" d/ o# R& U: V8 Y3 x
sr = ""
* r. F& ]9 R/ X5 P End If: u$ p$ q' r: c9 q3 [7 M" w: k
End If
7 V! n8 w" H0 ?& m P Next x, ~0 e7 ^ o4 q
MsgBox Timer - t
' R' e' V) N' _% Y1 AEnd Sub" B4 o/ g+ p2 N' D
5 G, J; B; S$ t) p$ K7 t4 `2 e+ ?
|
|