明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1071|回复: 1

选择集的问题请教 兰州人

[复制链接]
发表于 2008-7-11 11:23:00 | 显示全部楼层 |阅读模式

Public Sub CreateSSetFilter(ByRef filterType As Variant, ByRef filterData As Variant, ParamArray filter())
If UBound(filter) Mod 2 = 0 Then                          这里过滤器数组的个数几数还是偶数,不太懂哦
    MsgBox "Fileter 参数无效"
    Exit Sub

End If

Dim fType As Integer
Dim fData As Variant
Dim count As Integer                                            ‘count的具体数值怎么确定也不明白,
count = (UBound(filter) + 1) / 2
ReDim fType(count - 1)
ReDim fData(count - 1)
Dim i As Integer
For i = 0 To count - 1                      
    fType(i) = fType(2 * i)
    fData(i) = fData(2 * i + 1)
   
Next i

filterType = fType
filterData = fData


End Sub

能不能麻烦那位高手给解释一下哦?

发表于 2008-7-11 12:42:00 | 显示全部楼层

x Mod 2得到的值为0,说明x是偶数
Fileter由fType和fData组成,他们是一对一的关系,所以Fileter的数目应该是偶数,可是由于数组的下标是0开始的,所以上标返回偶数,说明fileter的数目是奇数,因此是不对的

上面说了,Fileter两部分组成,下标是0开始,所以上标加1可以得到Fileter的数目,由于fType和fData是一对一的关系,所以fType和fData的数目分别为fileter数目的一半,也就是(UBound(filter) + 1) / 2

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-9-21 04:16 , Processed in 0.172749 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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