Excel精英培训网

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

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

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

新建 Microsoft Excel 工作表.rar

28.87 KB, 下载次数: 7

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

GMT+8, 2024-5-31 15:33 , Processed in 4.385594 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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