|
我用的是EXCEL2010,我把VBA80集第24集中示例文件中“数组方法”的代码复制到我自己的excel中并执行代码,发现有些小问题。我要达到的效果就是D列数据大于15000时,该行数据填充红色。由于我把D列数据弄得很大,从第一个数据大于15000以后,后面所有数据都大于15000,结果每填充25行后,就有一行没有填充。有谁可以解释一下为什么?4 F% g: W- i6 Q- J! A6 W
Sub 清除颜色() K! A5 U" G: H
Range("a:d").Interior.ColorIndex = xlNone# ]2 B1 M$ R& Z, G, ]3 |
End Sub
( n. |; @, L* a* J3 D! G
c- | l* }+ `+ l7 B4 U* n/ D3 XSub 数组方法0()
0 ^ @# Q6 S' l: ~5 M Dim arr, t
/ ?( W' f4 y3 w! Y1 [# H/ ]2 ^# l+ U Dim x As Integer6 {3 z% {& ]# p/ V5 e. n( h9 P
Dim sr As String, sr1 As String
- R$ H0 B+ d6 M 清除颜色) k, p1 f0 c! B% ]
t = Timer- O% C9 C* K! S1 q$ _
arr = Range("d2:d" & Range("a65536").End(xlUp).Row)
8 H, l/ w- a- D8 h9 V9 V For x = 1 To UBound(arr)5 |+ g# Q& ^+ Q3 G
If x = UBound(arr) And sr <> "" Then Range(Left(sr, Len(sr) - 1)).Interior.ColorIndex = 3: k0 m: J6 i. a
If arr(x, 1) > 15000 Then
/ p8 H# D& A% y: \2 s% d sr1 = sr
7 R( R2 [+ n+ ]3 J4 I% w; H6 B# P2 x sr = sr & "A" & x + 1 & ":D" & x + 1 & ","
0 z' p( V; } q k$ _) _' W' a If Len(sr) > 255 Then& P h- B5 t, }# f* |. j$ T
sr = sr1( r. R3 @: E$ Y. @3 G* F
Range(Left(sr, Len(sr) - 1)).Interior.ColorIndex = 3
8 t) i3 u! J3 M4 k* [ sr = ""0 ^+ @; W9 ]: Q1 [9 D
End If
/ q, v H# M P End If
" I6 i# ^0 U$ _9 i/ d Next x+ E$ }- n) @3 S( |5 A3 c, t
MsgBox Timer - t0 c- m6 V7 ^0 l
End Sub& M% b F- P5 y" K8 r' i' a
4 i7 g* b" l1 ]) i |
|