Excel精英培训网

 找回密码
 注册
查看: 1651|回复: 0

VBA80集第24集中示例文件代码执行有些问题

[复制链接]
发表于 2012-8-1 11:38 | 显示全部楼层 |阅读模式
我用的是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+ ?

新建 Microsoft Excel 工作表.rar

28.87 KB, 下载次数: 7

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-31 23:02 , Processed in 0.154025 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表