如果陈述在案例陈述(VB.Net)
您好我是在Visual Studio的编码新。 我正在使用Visual Studio 2012 我有一个问题。 我想将组合框和文本框31连接到文本框1 前。如果ComboBox是100和textbox31是1,因此TextBox1的将是100如果陈述在案例陈述(VB.Net)
我结束了这段代码:
Dim c As String
c = ComboBox1.Text
Select Case "c"
Case 100
If TextBox31.Text >= 2.25 Then
TextBox1.Text = 100
ElseIf TextBox31.Text >= 2.5 Then
TextBox1.Text = 75
ElseIf TextBox31.Text >= 2.75 Then
TextBox1.Text = 50
ElseIf TextBox31.Text >= 3 Then
TextBox1.Text = 25
ElseIf TextBox31.Text >= 3.25 Then
TextBox1.Text = 0
End If
Case 75
If TextBox31.Text >= 2.25 Then
TextBox31.Text = 75
ElseIf TextBox1.Text >= 2.5 Then
TextBox1.Text = 75
ElseIf TextBox31.Text >= 2.75 Then
TextBox1.Text = 50
ElseIf TextBox31.Text >= 3 Then
TextBox1.Text = 25
ElseIf TextBox31.Text >= 3.25 Then
TextBox1.Text = 0
End If
Case 50
If TextBox31.Text >= 2.25 Then
TextBox1.Text = 50
ElseIf TextBox31.Text >= 2.5 Then
TextBox1.Text = 50
ElseIf TextBox31.Text >= 2.75 Then
TextBox1.Text = 50
ElseIf TextBox31.Text >= 3 Then
TextBox1.Text = 25
ElseIf TextBox31.Text >= 3.25 Then
TextBox1.Text = 0
End If
Case 25
If TextBox31.Text >= 2.25 Then
TextBox1.Text = 25
ElseIf TextBox31.Text >= 2.5 Then
TextBox1.Text = 25
ElseIf TextBox31.Text >= 2.75 Then
TextBox1.Text = 25
ElseIf TextBox31.Text >= 3 Then
TextBox1.Text = 25
ElseIf TextBox31.Text >= 3.25 Then
TextBox1.Text = 0
End If
End Select
,但是当我在组合框和文本框31 TextBox1的didnt响应或我想要什么iput要得到。
你使用有嵌套有点超过我通常是舒适的逻辑。在这种情况下,你可以考虑更多的东西是这样的:
Dim c As Integer
Dim aintValues() As Integer = {0, 25, 50, 75, 100}
If IsNumeric(ComboBox1.Text) And IsNumeric(TextBox31.Text) Then
c = ComboBox1.Text
Else
Exit Sub
End If
If c <= 25 Then
aintValues = {0, 25, 25, 25, 25}
ElseIf c <= 50 Then
aintValues = {0, 25, 50, 50, 50}
ElseIf c <= 75 Then
aintValues = {0, 25, 50, 75, 75}
End If
If TextBox31.Text >= 3.25 Then
TextBox1.Text = aintValues(0)
ElseIf TextBox31.Text >= 3.0 Then
TextBox1.Text = aintValues(1)
ElseIf TextBox31.Text >= 2.75 Then
TextBox1.Text = aintValues(2)
ElseIf TextBox31.Text >= 2.5 Then
TextBox1.Text = aintValues(3)
ElseIf TextBox31.Text >= 2.25 Then
TextBox1.Text = aintValues(4)
ElseIf TextBox31.Text >= 0 Then
TextBox1.Text = 42
Else
' negative
End If
或者如下你仍然可以使用select情况:
Dim c As Integer
Dim aintValues() As Integer = {0, 25, 50, 75, 100}
If IsNumeric(ComboBox1.Text) And IsNumeric(TextBox31.Text) Then
c = ComboBox1.Text
Else
Exit Sub
End If
If c <= 25 Then
aintValues = {0, 25, 25, 25, 25}
ElseIf c <= 50 Then
aintValues = {0, 25, 50, 50, 50}
ElseIf c <= 75 Then
aintValues = {0, 25, 50, 75, 75}
End If
Select Case TextBox31.Text
Case Is >= 3.25
TextBox1.Text = aintValues(0)
Case Is >= 3.0
TextBox1.Text = aintValues(1)
Case Is >= 2.75
TextBox1.Text = aintValues(2)
Case Is >= 2.5
TextBox1.Text = aintValues(3)
Case Is >= 2.25
TextBox1.Text = aintValues(4)
Case Is >= 0
TextBox1.Text = 42
Case Else
' negative
End Select
我试过这也是它也 但我调整的Textbox31.Text的值从2.25到1,2.5到2.25等等 但我没有了解很多代码。 它是如何完成的。 谢谢我试着理解,所以我有新的知识。 :) – Hawiie13
有与您的代码一对夫妇的问题,而是一个地方开始会明白,你的条件
Case 100
If TextBox31.Text >= 2.25 Then
TextBox1.Text = 100
ElseIf TextBox31.Text >= 2.5 Then
TextBox1.Text = 75
ElseIf TextBox31.Text >= 2.75 Then
TextBox1.Text = 50
ElseIf TextBox31.Text >= 3 Then
TextBox1.Text = 25
ElseIf TextBox31.Text >= 3.25 Then
TextBox1.Text = 0
End If
在功能上等同于
Case 100
If TextBox31.Text >= 2.25 Then
TextBox1.Text = 100
End If
的其他条件永远不会因为测试如果TextBox31.Text
是大于或等于2.25
的任何值,则它会通过,我们就完成了。
解决这个问题,你可以扭转你的条件的顺序,即
Case 100
If TextBox31.Text >= 3.25 Then
TextBox1.Text = 0
ElseIf TextBox31.Text >= 3 Then
TextBox1.Text = 25
ElseIf TextBox31.Text >= 2.75 Then
TextBox1.Text = 50
ElseIf TextBox31.Text >= 2.5 Then
TextBox1.Text = 75
ElseIf TextBox31.Text >= 2.25 Then
TextBox1.Text = 100
End If
此外,这听起来像你想覆盖其中TextBox31.Text < 2.25
,你可以用一个Else
Case 100
If TextBox31.Text >= 3.25 Then
TextBox1.Text = 0
ElseIf TextBox31.Text >= 3 Then
TextBox1.Text = 25
ElseIf TextBox31.Text >= 2.75 Then
TextBox1.Text = 50
ElseIf TextBox31.Text >= 2.5 Then
TextBox1.Text = 75
ElseIf TextBox31.Text >= 2.25 Then
TextBox1.Text = 100
Else
TextBox1.Text = 100000
End If
Mr.sfletche '情况下,我会更新100 如果TextBox31.Text> = 3.25然后 TextBox31.Text = 0 elseif的TextBox31.Text> = 3然后 TextBox1.Text = 25 elseif的TextBox31.Text> = 2.75然后 TextBox1.Text = 50 elseif的TextBox31.Text> = 2.5然后 TextBox1.Text = 75 elseif的TextBox31.Text> = 2.25然后 TextBox1.Text = 100 结束If' 什么也没有发生 – Hawiie13
@HarryReyes:这可能是因为'TextBox31.Text'做不包含值> = 2.25(在这种情况下,它什么都不做) – sfletche
我只是现在编辑,但没有。 我只想做 了'ComboBox1.Text'是以前的奖学金比例 那么'Textbox31.Text'是档次。 'Textbox1.Text'是他/她得到的新奖学金比例 继承人我想要做什么 当以前的奖学金百分比是100并且等级不会降低到2.25新的奖学金百分比维持但是如果等级低于2.25的新的奖学金比例将下降到75个 – Hawiie13
我不知道你的脚本是什么,但有一点可能是你的失败:
第一if..then-S语句设置TextBox31的文本而不是TextBox1。 我宁愿这样写:
If TextBox31.Text >= 2.25 Then
TextBox1.Text = 100
我的代码为约 的'ComboBox1.Text'是以前学术百分比 那么'Textbox31.Text'是年级。 'Textbox1.Text'是他/她得到的新奖学金比例 继承人我想要做什么 当以前的奖学金百分比是100并且等级不会降低到2.25新的奖学金百分比维持但是如果等级低于2.25新的奖学金比例将下降到75等 – Hawiie13
我解决现在的问题 我用这个代码:
Case 100
If TextBox31.Text >= 3 Then
TextBox1.Text = 0
ElseIf TextBox31.Text >= 2.75 Then
TextBox1.Text = 25
ElseIf TextBox31.Text >= 2.5 Then
TextBox1.Text = 50
ElseIf TextBox31.Text >= 2.25 Then
TextBox1.Text = 75
ElseIf TextBox31.Text >= 1 Then
TextBox1.Text = 100
Else
TextBox1.Text = 0
谢谢Mr.sfletche不放弃帮助我。 同样的,其他谁帮我thanyo非常 Mr.sfletche如果我有这方面的其他问题,你会帮助我在福特
非常感谢你们
这是数学序列的问题。你不能在这里使用if语句。如果是这样,不幸的是,当工作修改发生时你会精神失常。
'Example Data
Dim c = "50"
Dim Text = "3.12"
Dim value As Double
Double.TryParse(Text, value)
Dim num = Math.Ceiling((3.25 - value)/0.25)
Console.WriteLine(Math.Min(Integer.parseInt(c), 25 * num))
我假设你想要做的就是上述。
'选择案例 “C”'不正确。它应该是'Select Case c' – snoopen
我只是删除了“”我都一样。 – Hawiie13
如果您使用的是Visual Studio,这是VB.net而不是VBA。检查你的变量类型。我认为用VB.net你可以依赖它为你铸造,但是很好意识到你将c作为字符串与Case 100作为Integer进行比较。 – snoopen