Forms excel用户表单按钮不工作

Forms excel用户表单按钮不工作,forms,vba,excel,user-input,Forms,Vba,Excel,User Input,我在ExcelVBA中制作了一个简单的用户表单,它有一个加减按钮。单击一个时,它应该将一个添加到包含当前小时的行中的任何值中 例如,如果是7:35,有人单击“添加”,则应在包含7:00列B的行中添加1。当我使用vbYesNo按钮和一些if语句初始化此代码时,它可以工作,但当我在按钮中使用相同的代码时,单击用户窗体时,它不会工作,我无法找出原因。我的代码如下: Private Sub CommandButton1_Click() Sheets("Front End").Unprotect ("29

我在ExcelVBA中制作了一个简单的用户表单,它有一个加减按钮。单击一个时,它应该将一个添加到包含当前小时的行中的任何值中

例如,如果是7:35,有人单击“添加”,则应在包含7:00列B的行中添加1。当我使用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,那么您的问题是:

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

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

你的偏移量不匹配。减法也是同样的问题。除非您试图从第6列的值中减去一,然后将其放入第3列。在这种情况下,该代码应该可以正常工作

命令按钮的名称相同吗?还是你在那之后换了?可以在显示窗体之前调试单击并在其上设置断点