我正试图向我的Excel电子表格中添加一个自旋按钮,这样当我单击自旋按钮时,我的单元格值就会通过.01增加,而当我单击自旋按钮时,我的单元格值就会减少。我有以下代码:
Private Sub SpinButton1_SpinUp()
Dim i As Integer
i = Sheet1.Range("E8").Value
Sheet1.Range("E8") = i + 0.01
End Sub当我测试这个代码单元格的功能时,E8会上升到.01,但只有一次。当我再次点击按钮时,什么都不会发生。如何才能纠正这种情况?
谢谢!
发布于 2015-12-02 13:49:34
将整数改为双倍
Private Sub SpinButton1_SpinUp()
Dim i As Double
i = Sheet1.Range("E8").Value
Sheet1.Range("E8") = i + 0.01
End Sub发布于 2015-12-02 13:55:19
整数不会存储十进制值。因此,如果单元格E8中有8,则在int中得到8,然后将8+ .01写入单元格E8,从而得到8.01。
下一次将8.01读入int中时,VB将舍入小数,因此您将再次获得8的整数,并将相同的值加回。
您需要将变量更改为十进制变量。
取出变量声明只会让VB猜测使用什么,这不是一个好的实践。您应该在代码顶部使用“选项显式”来防止这种情况发生。
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取决于它可以达到的十进制大小。
发布于 2015-12-02 13:56:15
您不需要将值存储在变量中。尝尝这个。
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 Subhttps://stackoverflow.com/questions/34044148
复制相似问题