Private Sub ()
If (Cip(0) <> "") Then
k = 0
End If
If (Cip(1) <> "") Then
k = 1
End If
If (Cip(2) <> "") Then
k = 2
End If
If (Cip(3) <> "") Then
k = 3
End If
If Value = 0 Then
GoTo Label1
Else
i = k+1 'i 是静态变量
End IfEnd Sub
Label1: If Value = 0 And i = k + 1 Then
当k=0的时候value=0,然后是1,然后第三次给value赋值的时候执行label1
当k=1的时候仍然是value=0,然后是1,......然后第五次给value赋值的时候执行label1
当k=2的时候仍然是value=0,然后是1,......然后第七次给value赋值的时候执行label1
......怎么办那?我的代码不行呀.只能符合K=0的时候的情况,其他的就乱了
If (Cip(0) <> "") Then
k = 0
End If
If (Cip(1) <> "") Then
k = 1
End If
If (Cip(2) <> "") Then
k = 2
End If
If (Cip(3) <> "") Then
k = 3
End If
If Value = 0 Then
GoTo Label1
Else
i = k+1 'i 是静态变量
End IfEnd Sub
Label1: If Value = 0 And i = k + 1 Then
当k=0的时候value=0,然后是1,然后第三次给value赋值的时候执行label1
当k=1的时候仍然是value=0,然后是1,......然后第五次给value赋值的时候执行label1
当k=2的时候仍然是value=0,然后是1,......然后第七次给value赋值的时候执行label1
......怎么办那?我的代码不行呀.只能符合K=0的时候的情况,其他的就乱了
在不知道循环内需要执行多少次语句时,宜用 Do 循环。但是,在知道要执行多少次时,则最好使用 For...Next 循环。与 Do 循环不同, For 循环使用一个叫做计数器的变量,每重复一次循环之后,计数器变量的值就会增加或者减少。For 循环的语法如下:For counter = start To end [Step increment]
statementsNext [counter]参数 Counter、Start、end 和 increment 都是数值型的。注意 increment 参数可正可负。如果 increment 为正,则 Start 必须小于等于 end,否则不能执行循环内的语句。如果 increment 为负,则 Start 必须大于等于 end,这样才能执行循环体。如果没有设置 Step,则 increment 缺省值为 1。在执行 For 循环时,Visual Basic 设置 counter 等于 start。
测试 counter 是否大于 end。若是的话,则 Visual Basic 退出循环。
(若 increment 为负,则 Visual Basic 测试 counter 是否小于 end。)执行语句。
counter 增加一,或者增加 increment(如果已指定的话)。
重复步骤 2 到步骤 4。
以下代码打印出所有有效的屏幕字体名:Private Sub Form_Click ()
Dim I As Integer
For i = 0 To Screen.FontCount
Print Screen.Fonts (i)
Next
End Sub在 VCR 示例应用程序中,HighlightButton 过程使用 For...Next 循环,一步步经过 VCR 窗体的控件集合,并显示适当的 Shape 控件:Sub HighlightButton (MyControl As Variant)
Dim i As Integer
For i = 0 To frmVCR.Controls.Count - 1
If TypeOf frmVCR.Controls (i) Is Shape Then
If frmVCR.Controls (i).Name = MyControl Then
frmVCR.Controls (i).Visible = True
Else
frmVCR.Controls (i).Visible = False
End If
End If
Next
End Sub
Dim I As Integer, K As Integer, VALUE As Integer
For K = 0 To 3
VALUE = 0
For I = 1 To 2 * K + 3
VALUE = VALUE + 1
Next
Debug.Print "K="; K; "I="; I - 1; "VALUE="; VALUE
Next
End Sub
--------------------K= 0 I= 3 VALUE= 3
K= 1 I= 5 VALUE= 5
K= 2 I= 7 VALUE= 7
K= 3 I= 9 VALUE= 9
Private Sub xx()
Dim Sum As Integer
Dim j As Integer
For j = 0 To 3
If Cip(j) <> "" Then k = j
Next
Sum = k * 2 + 1
For j = 1 To Sum
Value = 0
'延史20ms
Value = 1
Next
End Sub
是不是这样?