Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 从字符串类型转换为长错误消息框_Vb.net_For Loop_Messagebox - Fatal编程技术网

Vb.net 从字符串类型转换为长错误消息框

Vb.net 从字符串类型转换为长错误消息框,vb.net,for-loop,messagebox,Vb.net,For Loop,Messagebox,在vb中重写在vba中完成的旧程序。我有一个for循环,用于检查以确保下拉选择与其他ddl选择不匹配。我在两个MessageBox上得到“从字符串到类型“Long”的转换无效”。显示行时,我已尝试四处移动And,但仍然得到错误。注释掉的部分是我在vba中得到的。语法应该是怎样的 Dim TCi(0 To 3) As String TCi(1) = "Air Temperature" TCi(2) = "Out Temperature

在vb中重写在vba中完成的旧程序。我有一个for循环,用于检查以确保下拉选择与其他ddl选择不匹配。我在两个MessageBox上得到“从字符串到类型“Long”的转换无效”。显示行时,我已尝试四处移动And,但仍然得到错误。注释掉的部分是我在vba中得到的。语法应该是怎样的

 Dim TCi(0 To 3) As String
        TCi(1) = "Air Temperature"
        TCi(2) = "Out Temperature(A)"
        TCi(3) = "Inlet"

        Dim TCj(0 To 3) As String
        TCj(1) = "Air Temperature"
        TCj(2) = "Out Temperature(A)"
        TCj(3) = "Inlet"

        SelectionFlagA = 0
        SelectionFlagB = 0
        TCSflag = 0
        For i = 1 To 3
            TCChannel = Me.Controls.Item("TCSDropDown" & i).Text
            If TCChannel = "Channel_Not_Available" Then
            ElseIf TCChannel = "Select Temp" Then
                TCSflag = TCSflag + 1
                'This code works
                MessageBox.Show("You selected the same temp for both" & TCi(i) & " and " & TCj(j), "Conflicting Temp Selection!", MessageBoxButtons.OK, MessageBoxIcon.Error)
                Exit For
            Else
                If InStr(1, TCChannel, "A") Then
                    SelectionFlagA = 1
                End If
                If InStr(1, TCChannel, "B") Then
                    SelectionFlagB = 1
                End If

                For j = 1 To 3

                    If TCi(i) <> TCj(j) Then
                        TCChannel1 = Me.Controls.Item("TCSDropDown" & j).Text
                        If TCChannel1 = "Channel_Not_Available" Then
                        Else
                            If TCChannel = TCChannel1 Then
                                'This code works
                                MessageBox.Show("You selected the same temp for both " & TCi(i) And "" & TCj(j), vbCritical, "Conflicting Temp Selection!")
                                'VBA Line: MsgBox "You selected the same temp for both " & TCi(i) & " and " & TCj(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
Dim TCi(0到3)作为字符串
TCi(1)=“空气温度”
TCi(2)=“输出温度(A)”
TCi(3)=“入口”
将TCj(0到3)的尺寸设置为字符串
TCj(1)=“空气温度”
TCj(2)=“输出温度(A)”
TCj(3)=“入口”
SelectionFlagA=0
SelectionFlagB=0
TCSflag=0
对于i=1到3
TCChannel=Me.Controls.Item(“TCSDropDown”&i).Text
如果TCChannel=“频道不可用”,则
ElseIf TCChannel=“选择温度”然后
TCSflag=TCSflag+1
“这个代码有效
MessageBox.Show(“您为“&TCi(i)&”和“&TCj(j)”选择了相同的温度,“温度选择冲突!”,MessageBoxButtons.OK,MessageBoxIcon.Error)
退出
其他的
如果仪表(1,TCC通道,“A”),则
SelectionFlagA=1
如果结束
如果仪表(1,TCC通道,“B”),则
SelectionFlagB=1
如果结束
对于j=1到3
如果TCi(i)TCj(j),那么
TCChannel1=Me.Controls.Item(“TCSDropDown”&j).Text
如果TCCHANNEL 1=“频道不可用”,则
其他的
如果TCChannel=TCChannel 1,则
“这个代码有效
MessageBox.Show(“您为“&TCi(i)”和“&TCj(j)”选择了相同的温度,vbCritical,“温度选择冲突!”)
“VBA行:MsgBox”您为“&TCi(i)&”和“&TCj(j),vbCritical”选择了相同的温度,温度选择冲突
TCSflag=TCSflag+1
退出
如果结束
如果结束
如果结束
下一个
如果TCSflag>=1,则
退出
如果结束
如果结束
下一个

您应该能够准确地使用VBA代码

MessageBox.Show("Please select a temp for" & " " & TCi(i), "Error")
也就是说,在
之后连接空格没有实际意义。。。像这样的临时工。只需将它添加到实际字符串中的
之后

MessageBox.Show("Please select a temp for " & TCi(i), "Error")

和“
可能应该是
和“
”。要小心打字错误,编辑器会试图理解错误并生成无效代码。在
和TCi(i)
中也有错误,或者&“和TCi(i)应该是&”&“&TCi(i)@HansPassant我试过了”和“TCi(i),得到了一个红色下划线,错误是“逗号”),或者需要一个有效的表达式继续。嗯,当我尝试使用准确的VBA代码时,我在Show()下得到了一条红线.System.ComponentModel.InvalidEnumArgumentException。“如果不进行缩小转换,则无法调用可访问的“Show”。另外,您将它添加到
之后是什么意思。我知道不需要空间。我为两个建议都添加了代码。看看这两个代码块之间的区别。第二个在结束引用之前有一个空格,我试过了。我在“Show”下得到语法错误。我尝试在我的描述中添加图片,但没有显示?StackOverflow新增功能。请删除
vbCritical
或使用旧式
MsgBox(…)
Yup!我在上面插入了新代码,这很有效!谢谢你的帮助,不得不更新使用的参数。