vb 该怎么优化

[复制链接]
查看11 | 回复1 | 2009-4-25 11:01:17 | 显示全部楼层 |阅读模式
Private Sub Command20_Click()

For ii = 0 To Form9.List1.ListCount - 1

str = Form9.List1.List(ii)

sz = Split(str, ",")

st = sz(0)

Form9.List1.ListIndex = ii

si(0) = ....

si(1) = ....

si(2) = ....

si(3) = ....

si(4) = ....

si(5) = ....

si(6) = ....

......

.......

si(36) = ...



If Form9.Check1(0).Value = 1 Then mi(0) = si(7)

If Form9.Check1(1).Value = 1 Then mi(1) = si(8)

........

........


If Form9.Check1(36).Value = 1 Then mi(36) = si(40)

For i = MSFlexGrid1.Rows - 1 To 1 Step -1

bb = MSFlexGrid1.TextMatrix(i, 1)

si(0) = bb Mod 10

si(1) = (bb \ 10) Mod 10

si(2) = (bb \ 100) Mod 10

si(3) = ....

si(4) = ....

ww(10) = si(1)

ww(11) = si(0)

ww(0) = ....

............

............


ww(36) = ....



If Form9.Option1(2) = True And Form9.Option2(1) = True Then

fff = False

For dd = 0 To 36

For j = dd + 1 To 36

For n = j + 1 To 36

If Form9.Check1(dd).Value = 1 And Form9.Check1(j).Value = 1 And Form9.Check1(n).Value = 1 Then

d = ww(dd)mi(dd)

c = ww(j)mi(j)

k = ww(n)mi(n)

b = Not (d Or c Or k)



If b And Form9.Check1(dd).Value Then fff = True



End If

Next

Next

Next



If fff = False Then

MSFlexGrid1.RemoveItem i

End If

End If

Next

Next
End If
End Sub
加起来一共5个大循环,运算起来超过40秒,该怎么能减少循环优化
咋拆啊

回复

使用道具 举报

千问 | 2009-4-25 11:01:17 | 显示全部楼层
5层循环,欠套太多了,不慢才怪,拆开写。第一层循环是拆分赋值,你将值放进数组很好。第二层循环取表单元值,可以嵌放到里面。最里面三个循环也不必嵌套在里面,拿出来比较好。...
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行