刷新SpinButton SpinUp或SpinDown

我正在尝试向我的Excel电子表格中添加一个旋转button,以便当单击旋钮时,我的单元格值增加了.01,而当我单击旋转button时,我的单元格值减less了.01。 我有以下代码:

Private Sub SpinButton1_SpinUp() Dim i As Integer i = Sheet1.Range("E8").Value Sheet1.Range("E8") = i + 0.01 End Sub 

当我testing这个代码单元格的functionE8上升.01,但只有一次。 当我再次点击button时,没有任何反应。 这怎么能纠正?

谢谢!

将整数更改为Double

 Private Sub SpinButton1_SpinUp() Dim i As Double i = Sheet1.Range("E8").Value Sheet1.Range("E8") = i + 0.01 End Sub 

整数不会存储小数值。 所以,如果你在单元格E8中有8个,那么你在int中得到8,然后把8 + .01写入单元格E8,所以你得到了8.01。

下一次你读入8.01到整数,VB正在四舍五入小数,所以你再次得到8在int,并join相同的价值回来。

您需要将variables更改为十进制variables。

取出variables声明只会让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 

取决于它可以达到的小数的大小。

您不需要将值存储在variables中。 尝试这个。

 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