首页 > 解决方案 > 尝试在自动复选框后自动在多列中添加日期

问题描述

我正在尝试帮助我母亲为她的 T 恤库存制作一个电子表格,这样她就可以在检查款式后填写复选框和日期。经过数小时的视频和网站研究后,我尝试结合使用这些代码,但没有运气:

(来自网站:https ://answers.microsoft.com/en-us/msoffice/forum/msoffice_excel-mso_windows8-mso_2016/use-check-box-to-create-date-time-stamp/a466c68a-2440-4ce0- 9a73-2abe73256a0b )

Private Sub CheckBox1_Change() 
    Dim destSH As Worksheet 
    Dim rngDate As Range, rngTime As Range 
    Set destSH = ThisWorkbook.Sheets("Sheet2") 
    With destSH Set rngDate = .Range("E2") 
         Set rngTime = .Range("D2") 
    End With 
    If Me.CheckBox1.Value = True Then 
    With rngDate .Value = Date 
        .NumberFormat = "mm/dd/yyyy" 
    End With 
    With rngTime .Value = Now() 
        .NumberFormat = "hh:mm" 
    End With
    End If 
End Sub

和这个网站:(https://social.msdn.microsoft.com/Forums/office/en-US/9e6dd210-59db-4018-a0c2-6a60dc03aeb8/check-box-that-insert-todays-date-in-another -cell?forum=exceldev )


     Private Sub Worksheet_Change(ByVal Target As Range)
     Dim cel As Range
     If Not Intersect(Range("C2:C100"), Target) Is Nothing Then
     Application.EnableEvents = False
     For Each cel In Intersect(Range("C2:C100"), Target)
        If cel.Value = "" Then
            cel.Offset(ColumnOffset:=1).ClearContents
        Else
            cel.Offset(ColumnOffset:=1).Value = Date
        End If
        Next cel
        Application.EnableEvents = True
        End If
        End Sub

这是我在尝试修复多个错误后最终做出的改变——

        Private Sub CheckBox1_Change()
        Dim destSH As Worksheet
        Dim rngDate As Range

        Set destSH = ThisWorkbook.Sheets("Sheet")
        If Me.CheckBox1.Value = True Then

        With rngDate.Value = Date
        .NumberFormat = "mm/dd/yyyy"
        End With

        Set rngDate = Range("E2,E48")
        If Not Range("D2,D48") Is Nothing Then
        Application.EnableEvents = False

         End If           
        Set rngDate = Range("G2,G48")
        If Not Range("F2,F48") Is Nothing Then
        Application.EnableEvents = False

           End IF
         Set rngDate = Range("I2,I48")
           If Not Range("H2,H48") Is Nothing Then
         Application.EnableEvents = False

         End IF
      Set rngDate = Range("K2,K48")
      If Not Range("J2,J48") Is Nothing Then
      Application.EnableEvents = False

           End IF
      Set rngDate = Range("N2,N48")
      If Not Range("M2,M48") Is Nothing Then
      Application.EnableEvents = False

            End IF
     Set rngDate = Range("P2,P48")
     If Not Range("O2,O48") Is Nothing Then
     Application.EnableEvents = False

           End IF
     Set rngDate = Range("R2,R48")
     If Not Range("Q2,Q48") Is Nothing Then
     Application.EnableEvents = False

           End If
     Set rngDate = Range("T2,T48")
     If Not Range("S2,S48") Is Nothing Then
     Application.EnableEvents = False

    End If

End Sub

当前电子表格

图像

我还尝试设置每个复选框的总和,以便她查看底部售出的商品数量。

当我设置复选框时,它们都是 Active X,我很确定我选中了真正的按钮,但我现在不知道在哪里可以找到信息。

感谢您提供任何帮助。

标签: exceldatecheckboxautofillvba

解决方案


推荐阅读