Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1946|回复: 2

请教VBA80集第二十四集数组方法2疑难问题

[复制链接]
发表于 2012-12-14 12:30 | 显示全部楼层 |阅读模式
Sub 数组方法2()
Dim arr, t
Dim x As Integer, x1 As Integer
Dim sr As String, sr1 As String
清除颜色
t = Timer
arr = Range("d2:d" & Range("a65536").End(xlUp).Row)
For x = 1 To UBound(arr)
   If x = UBound(arr) Then Range(Left(sr, Len(sr) - 1)).Interior.ColorIndex = 3
   If arr(x, 1) > 500 Then
      sr1 = sr
      x1 = x + 1
      Do
        x = x + 1
      Loop Until arr(x, 1) <= 500
      
      sr = sr & "A" & x1 & ":D" & x & ","
      If Len(sr) > 255 Then
        sr = sr1
        x = x1 - 1
        Range(Left(sr, Len(sr) - 1)).Interior.ColorIndex = 3
        sr = ""
      End If
      x = x - 1
   End If
Next x
MsgBox Timer - t

End Sub

(1)、x = x1-1 中,x、x1具体指哪句代码里的x、x1,怎么理解?
(2)、x = x - 1中,x具体指哪句代码里的x,怎么理解?
谢谢!


发表于 2012-12-14 14:01 | 显示全部楼层
本帖最后由 zjdh 于 2012-12-14 14:02 编辑

x1是行号记录。x 是行号记录同时又作为循环的指针。
x记录了结束行号,同时又作为循环的指针,由于行号与数组内序号差 1 所以,由结束号恢复到循环的指针要x=x-1。
x1 记录了起始行号,当变量sr内容长度大于255时,最后一个区域应删除,所以下次循环判断应该从最后一个起始行号之前开始所以x=x1-1。
回复

使用道具 举报

 楼主| 发表于 2012-12-14 15:02 | 显示全部楼层
zjdh 发表于 2012-12-14 14:01
x1是行号记录。x 是行号记录同时又作为循环的指针。
x记录了结束行号,同时又作为循环的指针,由于行号与数 ...

谢谢!!!!!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-28 14:08 , Processed in 0.294865 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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