我想创建一个Excel来记录一些时间(进入工作,退出晚餐...)。我坚决做到这一点的最佳方法是使用vba代码来表现出色。
我放置了一些botton(like in photo I upload)来记录一些重要的时间,并创建了一个表,其中包含每月的天数和要记录的事件。
但是,问题出在vba代码中。我在excel vba中非常不熟练,只能得到以下代码:
Sub time()
ActiveCell.Value = Now
End Sub
在活动单元格中,此代码写时间戳。...但是我想要更高级的代码。例如,我有一个“ Enter to work”按钮,当我按下该按钮时,我想要它:
我不知道该怎么做。谁能帮我吗?
答案 0 :(得分:0)
您可以执行以下操作。首先,您将获得日期的最后一行,而不仅仅是使用循环循环并比较工作表上的日期与返回当前日期的Now()
函数。然后,您可以使用offset
将时间写入下一个单元格。您可以将宏分配给spredsheet上的按钮,并且每次都会触发。我猜您可以在尝试写入之前放置另一个if语句来检查单元格中是否有值,以避免覆盖数据。请注意,工作表上的日期格式应为14/05/2019
。
Option Explicit
Sub FillInForm()
Dim WS As Worksheet
Dim i As Long
Dim LRow As Long
Dim dateFormatter As String
Dim xDate As Date
Set WS = ActiveSheet
dateFormatter = Format(Now, "dd/mm/yyyy")
xDate = CDate(dateFormatter)
With WS
LRow = .Range("B" & .Rows.Count).End(xlUp).Row
For i = 5 To LRow
If CDate(.Range("B" & i).value) = CDate(xDate) Then
If .Range("B" & i).Offset(0, 1).value = vbNullString Then
.Range("B" & i).Offset(0, 1).value = VBA.DateTime.Time
End If
End If
Next i
End With
End Sub