首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >刷新SpinButton SpinUp或SpinDown

刷新SpinButton SpinUp或SpinDown
EN

Stack Overflow用户
提问于 2015-12-02 13:37:51
回答 3查看 1.8K关注 0票数 0

我正试图向我的Excel电子表格中添加一个自旋按钮,这样当我单击自旋按钮时,我的单元格值就会通过.01增加,而当我单击自旋按钮时,我的单元格值就会减少。我有以下代码:

代码语言:javascript
复制
Private Sub SpinButton1_SpinUp()

Dim i As Integer

i = Sheet1.Range("E8").Value
Sheet1.Range("E8") = i + 0.01

End Sub

当我测试这个代码单元格的功能时,E8会上升到.01,但只有一次。当我再次点击按钮时,什么都不会发生。如何才能纠正这种情况?

谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-12-02 13:49:34

将整数改为双倍

代码语言:javascript
复制
Private Sub SpinButton1_SpinUp()
Dim i As Double
i = Sheet1.Range("E8").Value
Sheet1.Range("E8") = i + 0.01

End Sub
票数 0
EN

Stack Overflow用户

发布于 2015-12-02 13:55:19

整数不会存储十进制值。因此,如果单元格E8中有8,则在int中得到8,然后将8+ .01写入单元格E8,从而得到8.01。

下一次将8.01读入int中时,VB将舍入小数,因此您将再次获得8的整数,并将相同的值加回。

您需要将变量更改为十进制变量。

取出变量声明只会让VB猜测使用什么,这不是一个好的实践。您应该在代码顶部使用“选项显式”来防止这种情况发生。

代码语言:javascript
复制
Option Explicit

Private Sub SpinButton1_SpinUp()

    Dim i As Double

    i = Sheet1.Range("E8").Value
    Sheet1.Range("E8") = i + 0.01

End Sub

你也可以用

代码语言:javascript
复制
Dim i As Single

取决于它可以达到的十进制大小。

票数 3
EN

Stack Overflow用户

发布于 2015-12-02 13:56:15

您不需要将值存储在变量中。尝尝这个。

代码语言:javascript
复制
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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34044148

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档