代码之家  ›  专栏  ›  技术社区  ›  Vbasic4now

excel用户表单按钮不工作

  •  1
  • Vbasic4now  · 技术社区  · 10 年前

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

    例如,如果它是7:35,有人单击add,它应该在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 回复  |  直到 10 年前
        1
  •  1
  •   Alex D    10 年前

    如果您试图将该列增加1,那么您的问题是:

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

    应该是

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

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

    推荐文章