|
我用的是EXCEL2010,我把VBA80集第24集中示例文件中“数组方法”的代码复制到我自己的excel中并执行代码,发现有些小问题。我要达到的效果就是D列数据大于15000时,该行数据填充红色。由于我把D列数据弄得很大,从第一个数据大于15000以后,后面所有数据都大于15000,结果每填充25行后,就有一行没有填充。有谁可以解释一下为什么?+ ^% M6 O/ A. Q4 d
Sub 清除颜色()
% i0 j2 J$ F6 w+ C4 @: B/ t. @Range("a:d").Interior.ColorIndex = xlNone
0 ?) ~" R$ V- u# b: o! R+ PEnd Sub: G1 H9 m5 ?1 A6 t L( t
2 K" x' j; K; E' V
Sub 数组方法0()
+ X5 y' w6 m, T% M# j7 y Dim arr, t' A# M0 ^0 j* p9 k6 o- e5 B
Dim x As Integer8 g7 k) A: I/ z: f2 }( H# \
Dim sr As String, sr1 As String3 B% P! R7 j8 k( F
清除颜色5 t, C9 K" P+ z _7 R2 A/ E
t = Timer
$ u- x3 ]8 Z: k+ \- c& y6 C) D arr = Range("d2:d" & Range("a65536").End(xlUp).Row): S+ V, `# r, O, W6 A" o
For x = 1 To UBound(arr)' D) ?6 y: Z; l. L7 J
If x = UBound(arr) And sr <> "" Then Range(Left(sr, Len(sr) - 1)).Interior.ColorIndex = 3. n+ u/ G9 H6 b- g; Y$ K5 u
If arr(x, 1) > 15000 Then) @. h2 S) a# @0 c' L! w8 a. R2 [
sr1 = sr
' O" H& v) q8 x$ Y/ a+ u sr = sr & "A" & x + 1 & ":D" & x + 1 & ","$ n F0 z8 N, Q% L( f- F
If Len(sr) > 255 Then
4 c9 [. t6 x5 j+ j sr = sr19 D$ a! I% v$ z6 ?0 ~( U. e
Range(Left(sr, Len(sr) - 1)).Interior.ColorIndex = 3- T& `) w4 s. x2 G! s
sr = ""9 {" S. x. e! K! K- ?5 Z
End If4 x2 X) s: \8 [6 \5 C0 y( X+ s; T
End If
, D* I& t% m' B1 h3 j9 @1 g Next x) J% A2 O7 O b: i3 d
MsgBox Timer - t
+ c. a; W0 J# u/ x1 @End Sub9 o2 E- q3 a, \# _0 k( g9 y; c
( @6 Y, A$ b7 o) m |
|