excel用户表单按钮不起作用

时间:2016-06-15 15:12:01

标签: excel forms vba excel-vba user-input

我在excel VBA中创建了一个简单的用户表单,它有一个加减按钮。单击一个时,它应该为行中包含当前小时的任何值添加一个。

例如,如果它的7:35并且有人点击添加它应该将1添加到具有7:00列B的行。当我使用vbYesNo按钮和一些if语句初始化此代码时它可以工作,但是当我使用相同的代码在按钮点击用户表单上它没有,我无法弄清楚原因。我的代码如下:

Private Sub CommandButton1_Click()
Sheets("Front End").Unprotect ("29745")
h = Hour(Now)
    For Each c In range("B8:B20")
        If h = Hour(c) Then
            c.Offset(0, 6) = c.Offset(0, 3) + 1
            Exit For
        End If
    Next c
Sheets("Front End").Protect ("29745")
End Sub
------------------------------------------------------
Private Sub CommandButton2_Click()
Sheets("Front End").Unprotect ("29745")
h = Hour(Now)
    For Each c In range("B8:B20")
        If h = Hour(c) Then
            c.Offset(0, 6) = c.Offset(0, 3) - 1
            Exit For
        End If
    Next c
Sheets("Front End").Protect ("29745")
End Sub

任何人都可以帮助我理解我的错误以及我需要做些什么来解决它?

谢谢你!

1 个答案:

答案 0 :(得分:1)

如果您尝试将1加到该列,那么问题是:

c.Offset(0, 6) = c.Offset(0, 3) + 1

应该是

c.Offset(0, 6) = c.Offset(0, 6) + 1 'or both 3

您的偏移量不匹配。减法也有同样的问题。除非您尝试从第6列中的值中减去一个,并将其放在第3列中。在这种情况下,此代码应该正常工作。