我创建了一个代码,只需将文本拆分成行,然后在文本框中获取每一行,并将其与几个单词进行比较,以便我选择"选择案例"声明做比较 听到我的代码:
这是一行一行的代码
Dim TEXT As String
Dim arraytext() As String
TEXT = textbox1.Text
arraytext = TEXT.Split(vbCrLf)
lines = textbox1.LinesCount
textbox2.text = arraytext(i)
textbox2.text = textbox2.text.ToUpper()
然后我使用以下方法比较文本中的每一行:
Select Case True
Case textbox2.text="BANK0"
textbox3.Text = textbox3.Text & "BANK0" & vbNewLine
Case textbox2.text="BANK1"
textbox3.Text = textbox3.Text & "BANK1" & vbNewLine
Case Else
assem.Text = assem.Text & ";Error line " & i + 1 & vbNewLine
end select
'read next line
i = i + 1
问题是它只在第一行起作用然后它开始转向其他情况 我尝试了if else语句同样的问题!! 请注意,如果将代码改为此:它就像魅力一样
Select Case True
Case textbox2.text.contains("BANK0")
textbox3.Text = textbox3.Text & "BANK0" & vbNewLine
Case textbox2.text.contains("BANK1")
textbox3.Text = textbox3.Text & "BANK1" & vbNewLine
Case Else
assem.Text = assem.Text & ";Error line " & i + 1 & vbNewLine
end select
'read next line
i = i + 1
请求帮助;提前thx:)
答案 0 :(得分:0)
如果比较未通过=
测试但通过.Contains
测试,则最可能的解释是textbox2.text
的值不只是“BANK0”,而是包含一个字符串“BANK0”加上至少一个其他角色。
尾随空白很有可能。
答案 1 :(得分:-1)
选择案例为真是错误的。你应该把文本box.text而不是true。然后案例'字'。对不起,我正在用手机写信
答案 2 :(得分:-1)
使用'修剪'方法并停止滥用选择案例(“Select Case True”是一种常见的VB滥用语法)
Select Case textbox2.Text.Trim()
Case "BANK0"
textbox3.Text &= "BANK0" & vbNewLine
Case "BANK1"
textbox3.Text &= "BANK1" & vbNewLine
Case Else
assem.Text &= ";Error line " & i + 1 & vbNewLine
End Select
我为什么相信“Select Case True”的一个小解释是不好的做法:你所做的只是确定第一个'案例'是真的 - 这可以通过使用If / ElseIf / Else语法更清楚地完成,而不是选择情况下。