【发布时间】:2021-02-17 09:10:42
【问题描述】:
我有一个布尔标志。基于此标志为假或真,我的应用程序应该转到相应的 for 循环。循环完全相同,除了如果为假,我只想循环 i/j = 1-2。如果为真,我想循环 i/j = 1-3。也许有比创建标志更有效的方法,但是,我在第二个循环的结构上遇到错误。
Dim Ti(0 To 3) As String
Ti(1) = "Temperature"
Ti(2) = "Outside Temperature"
Ti(3) = "Inside Temperature"
Dim Tj(0 To 3) As String
Tj(1) = "Temperature"
Tj(2) = "Outside Temperature"
Tj(3) = "Inside Temperature"
Flag1 = 0
Flag2 = 0
TCSflag = 0
If onlyflag = False Then
For i = 1 To 2
TCChannel = Me.Controls.Item("TCSDropDown" & i).Text
If TCChannel = "Not Available" Then
ElseIf TCChannel = "Select Temp" Then
TCSflag = TCSflag + 1
MsgBox("Please select a temp for" & " " & Ti(i), vbCritical, "Error")
Exit For
Else
If InStr(1, TCChannel, "Type 1") Then
Flag1 = 1
End If
If InStr(1, TCChannel, "Type 2") Then
Flag2 = 1
End If
For j = 1 To 2
If Ti(i) <> Tj(j) Then
TCChannel1 = Me.Controls.Item("TCSDropDown" & j).Text
If TCChannel1 = "Not Available" Then
Else
If TCChannel = TCChannel1 Then
MsgBox("You selected the same temp for both " & Ti(i) & " and " & Tj(j), vbCritical, "Conflicting Temp Selection!")
TCSflag = TCSflag + 1
Exit For
End If
End If
End If
Next
If TCSflag >= 1 Then
Exit For
End If
End If
Next
Else onlyflag = True
For i = 1 To 3
TCChannel = Me.Controls.Item("TCSDropDown" & i).Text
If TCChannel = "Not Available" Then
ElseIf TCChannel = "Select Temp" Then
TCSflag = TCSflag + 1
MsgBox("Please select a temp for" & " " & Ti(i), vbCritical, "Error")
Exit For
Else
If InStr(1, TCChannel, "Type 1") Then
Flag1 = 1
End If
If InStr(1, TCChannel, "Type 2") Then
Flag2 = 1
End If
For j = 1 To 3
If Ti(i) <> Tj(j) Then
TCChannel1 = Me.Controls.Item("TCSDropDown" & j).Text
If TCChannel1 = "Not Available" Then
Else
If TCChannel = TCChannel1 Then
MsgBox("You selected the same temp for both " & Ti(i) & " and " & Tj(j), vbCritical, "Conflicting Temp Selection!")
TCSflag = TCSflag + 1
Exit For
End If
End If
End If
Next
If TCSflag >= 1 Then
Exit For
End If
End If
End If
Next
【问题讨论】:
-
我在粘贴的代码中看到错误的是
Else onlyflag = True;也许您的意思是让onlyflag = True部分出现在评论中?我不认为它会像介绍的那样编译。 (接受的答案是比修复它更好的选择。)
标签: vb.net for-loop if-statement