需要帮助比较多个值VBA

时间:2015-02-15 21:06:28

标签: vba integer multiplication subtraction

所以我为我最喜欢的游戏之一制作了一个统计计算器(疯狂之神的领域),我为第1项和第2项制作了24把剑。

http://i.gyazo.com/2ef539f7f18305ae1318013a1dc659d8.png

我希望程序检查每把剑 射击的范围,伤害和数量(一次发射的导弹) 并将伤害乘以射击次数。

我注意到当前代码我显示的值没有小数 喜欢武器的伤害和范围。 http://gyazo.com/06a8471e9db64c7bc5cd9b30a3d952f8

不要介意用于临时测试的计时器按钮,以确保整数被更改。

    Dim i1 As Integer = 0
Dim i2 As Integer = 0
Dim i3 As Integer = 0
Dim i4 As Integer = 0

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    If (i1) < (i2) Then
        Label23.Text = "Damage : " & i1
    Else
        Label23.Text = "Damage : " & i2

        If (i3) < (i2) Then
            Label22.Text = "Range : " & i3
        Else
            Label22.Text = "Range : " & i4
        End If
    End If
End Sub

上面的代码有效但不是我希望的方式..

但基本上我要问的是关于如何有效地实现武器的比较值(伤害,射程,射击)的指针和代码示例 并让程序选择最好的程序。

1 个答案:

答案 0 :(得分:0)

您丢弃小数的原因是因为您已将变量声明为整数,这些变量无法存储小数。

有关数据类型的更多信息,请看一下:https://msdn.microsoft.com/en-us/library/47zceaw7.aspx

但是如果你需要大约几十年的经验...对于数字,只要你不需要小数就坚持多头,当你这样做时加倍。 Longs是VBA中最快的类型,单打带来了双倍的所有麻烦,但占用空间的一半。

有时会使用其他类型。例如,Excel中的大多数MSFORMS控件都将其数字类型设置为单个,并且为了避免类型转换怪异,最好只匹配类型。但是,除非你有理由...... Longs和Doubles会让你在99%的时间里去。 (IMO)