VB 过程太大的问题
Ifzs1=zz1ThenLabel2(i).BackColor=&HFF&Label2(i).ForeColor=&HFFFFFFLabel2(i).Caption=z...
If zs1 = zz1 Then
Label2(i).BackColor = &HFF&
Label2(i).ForeColor = &HFFFFFF
Label2(i).Caption = zs1
i1 = 0
Else
Label2(i).BackColor = &HC0FFFF
Label2(i).ForeColor = &H404040
Label2(i).Caption = i1
End If
If zs1 = zz2 Then
Label3(i).BackColor = &HFF&
Label3(i).ForeColor = &HFFFFFF
Label3(i).Caption = zs1
i2 = 0
Else
Label3(i).BackColor = &HC0FFFF
Label3(i).ForeColor = &H404040
Label3(i).Caption = i2
End If
If zs1 = zz3 Then
Label4(i).BackColor = &HFF&
Label4(i).ForeColor = &HFFFFFF
Label4(i).Caption = zs1
i3 = 0
Else
Label4(i).BackColor = &HC0FFFF
Label4(i).ForeColor = &H404040
Label4(i).Caption = i3
End If
If zs1 = zz4 Then
Label5(i).BackColor = &HFF&
Label5(i).ForeColor = &HFFFFFF
Label5(i).Caption = zs1
i4 = 0
Else
Label5(i).BackColor = &HC0FFFF
Label5(i).ForeColor = &H404040
Label5(i).Caption = i4
End If
If zs1 = zz5 Then
Label6(i).BackColor = &HFF&
Label6(i).ForeColor = &HFFFFFF
Label6(i).Caption = zs1
i5 = 0
Else
Label6(i).BackColor = &HC0FFFF
Label6(i).ForeColor = &H404040
Label6(i).Caption = i5
End If
If zs1 = zz6 Then
Label7(i).BackColor = &HFF&
Label7(i).ForeColor = &HFFFFFF
Label7(i).Caption = zs1
i6 = 0
Else
Label7(i).BackColor = &HC0FFFF
Label7(i).ForeColor = &H404040
Label7(i).Caption = i6
End If
If zs1 = zz7 Then
Label8(i).BackColor = &HFF&
Label8(i).ForeColor = &HFFFFFF
Label8(i).Caption = zs1
i7 = 0
Else
Label8(i).BackColor = &HC0FFFF
Label8(i).ForeColor = &H404040
Label8(i).Caption = i7
End If
If zs1 = zz8 Then
Label9(i).BackColor = &HFF&
Label9(i).ForeColor = &HFFFFFF
Label9(i).Caption = zs1
i8 = 0
Else
Label9(i).BackColor = &HC0FFFF
Label9(i).ForeColor = &H404040
Label9(i).Caption = i8
End If
上面写不完,就是这样的判断语句共二千多条.用了一天的时间好不容易写完了.可是一执行就提示,过程太大.不能用,晕到.有没有方法简化这样的判断.谢谢.或者,如何可以设置过程行的大小值. 展开
Label2(i).BackColor = &HFF&
Label2(i).ForeColor = &HFFFFFF
Label2(i).Caption = zs1
i1 = 0
Else
Label2(i).BackColor = &HC0FFFF
Label2(i).ForeColor = &H404040
Label2(i).Caption = i1
End If
If zs1 = zz2 Then
Label3(i).BackColor = &HFF&
Label3(i).ForeColor = &HFFFFFF
Label3(i).Caption = zs1
i2 = 0
Else
Label3(i).BackColor = &HC0FFFF
Label3(i).ForeColor = &H404040
Label3(i).Caption = i2
End If
If zs1 = zz3 Then
Label4(i).BackColor = &HFF&
Label4(i).ForeColor = &HFFFFFF
Label4(i).Caption = zs1
i3 = 0
Else
Label4(i).BackColor = &HC0FFFF
Label4(i).ForeColor = &H404040
Label4(i).Caption = i3
End If
If zs1 = zz4 Then
Label5(i).BackColor = &HFF&
Label5(i).ForeColor = &HFFFFFF
Label5(i).Caption = zs1
i4 = 0
Else
Label5(i).BackColor = &HC0FFFF
Label5(i).ForeColor = &H404040
Label5(i).Caption = i4
End If
If zs1 = zz5 Then
Label6(i).BackColor = &HFF&
Label6(i).ForeColor = &HFFFFFF
Label6(i).Caption = zs1
i5 = 0
Else
Label6(i).BackColor = &HC0FFFF
Label6(i).ForeColor = &H404040
Label6(i).Caption = i5
End If
If zs1 = zz6 Then
Label7(i).BackColor = &HFF&
Label7(i).ForeColor = &HFFFFFF
Label7(i).Caption = zs1
i6 = 0
Else
Label7(i).BackColor = &HC0FFFF
Label7(i).ForeColor = &H404040
Label7(i).Caption = i6
End If
If zs1 = zz7 Then
Label8(i).BackColor = &HFF&
Label8(i).ForeColor = &HFFFFFF
Label8(i).Caption = zs1
i7 = 0
Else
Label8(i).BackColor = &HC0FFFF
Label8(i).ForeColor = &H404040
Label8(i).Caption = i7
End If
If zs1 = zz8 Then
Label9(i).BackColor = &HFF&
Label9(i).ForeColor = &HFFFFFF
Label9(i).Caption = zs1
i8 = 0
Else
Label9(i).BackColor = &HC0FFFF
Label9(i).ForeColor = &H404040
Label9(i).Caption = i8
End If
上面写不完,就是这样的判断语句共二千多条.用了一天的时间好不容易写完了.可是一执行就提示,过程太大.不能用,晕到.有没有方法简化这样的判断.谢谢.或者,如何可以设置过程行的大小值. 展开
7个回答
展开全部
我建议你别写了,你的程序出发点好象就有问题,根据上千个zs1的不同取值来让上千个Label控件数组改变颜色和标题,一句话:有点傻。
我认为一个程序用到上千个控件数组都不太正常。
建议你重新思考你的问题找出简化的方法。
我认为一个程序用到上千个控件数组都不太正常。
建议你重新思考你的问题找出简化的方法。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
哦。遇到过类似问题。呵呵
可以把过程拆分!
比如
//大约1000行
sub()
{print ""
...
print ""}
这样的话,过程太长,就会包报错。
修改如下:
//修改为每个子sub为300多行
sub1()
{print ""
....
print ""}
sub2()
{print ""
....
print ""}
sub3()
{print ""
....
print ""}
这样的话,
当你需要执行call sub()的话,替换为
call sub1()
call sub2()
call sub3()
就可以了。。。
好象sub不能超过500行!!!
可以把过程拆分!
比如
//大约1000行
sub()
{print ""
...
print ""}
这样的话,过程太长,就会包报错。
修改如下:
//修改为每个子sub为300多行
sub1()
{print ""
....
print ""}
sub2()
{print ""
....
print ""}
sub3()
{print ""
....
print ""}
这样的话,
当你需要执行call sub()的话,替换为
call sub1()
call sub2()
call sub3()
就可以了。。。
好象sub不能超过500行!!!
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个很简单
你把要additem的内容放到一个txt文件里,如1.txt
然后用
Dim
s
as
String
Open
App.path
&
"\1.txt"
for
Input
As
#1
Do
until
EOF(1)
Line
Input
#1,s
List1.Additem
s
Loop
Close
#1
就可以了
你把要additem的内容放到一个txt文件里,如1.txt
然后用
Dim
s
as
String
Open
App.path
&
"\1.txt"
for
Input
As
#1
Do
until
EOF(1)
Line
Input
#1,s
List1.Additem
s
Loop
Close
#1
就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
顶楼上的,换成select吧
if else end if效率太低了
if else end if效率太低了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Case
511
To
512
If
IsNumeric(recshap.Fields("id").ValueAsString)
and
val(recshap.Fields("id").ValueAsString)<6
Then
frmquery.Image2.Picture
=
LoadPicture("D:\延安空间信息系统数据\柱状图\硝酸盐\YH0"+recshap.Fields("id").ValueAsString
+".jpg")
else
Load
frmquery
frmquery.Show
frmquery.Refresh
End
If
511
To
512
If
IsNumeric(recshap.Fields("id").ValueAsString)
and
val(recshap.Fields("id").ValueAsString)<6
Then
frmquery.Image2.Picture
=
LoadPicture("D:\延安空间信息系统数据\柱状图\硝酸盐\YH0"+recshap.Fields("id").ValueAsString
+".jpg")
else
Load
frmquery
frmquery.Show
frmquery.Refresh
End
If
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询