我正在尝试向我的Excel电子表格添加旋转按钮,以便当我单击旋转按钮时,我的单元格值增加.01,当我单击旋转按钮时,我的单元格值减少.01。我有以下代码:
Private Sub SpinButton1_SpinUp()
Dim i As Integer
i = Sheet1.Range("E8").Value
Sheet1.Range("E8") = i + 0.01
End Sub
当我测试此代码单元格的功能时,E8上升了.01,但只有一次。当我再次单击该按钮时,没有任何反应。如何纠正?
谢谢!
答案 0 :(得分:3)
整数不会存储小数值。因此,如果在单元格E8中有8个,则在int中得到8,然后将8 + .01写入单元格E8,这样就得到8.01。
下次你将8.01读入int时,VB将小数点四舍五入,这样你再次得到8 in int并重新添加相同的值。
您需要将变量更改为十进制变量。
取出变量声明只会让VB猜测使用什么,这不是一个好习惯。您应该在代码顶部使用“Option Explicit”来防止这种情况发生。
Option Explicit
Private Sub SpinButton1_SpinUp()
Dim i As Double
i = Sheet1.Range("E8").Value
Sheet1.Range("E8") = i + 0.01
End Sub
您也可以使用
Dim i As Single
取决于它可以达到的小数的大小。
答案 1 :(得分:2)
您不需要将值存储在变量中。试试这个。
Private Sub SpinButton1_SpinUp()
Sheet1.Range("E8").Value = Sheet1.Range("E8").Value + 0.01
End Sub
Private Sub SpinButton2_SpinDown()
Sheet1.Range("E8").Value = Sheet1.Range("E8").Value - 0.01
End Sub
答案 2 :(得分:0)
将Integer更改为Double
Private Sub SpinButton1_SpinUp()
Dim i As Double
i = Sheet1.Range("E8").Value
Sheet1.Range("E8") = i + 0.01
End Sub