如果date =今天更新行,否则创建新行

时间:2018-11-09 12:43:36

标签: excel vba userform

我正在处理一个用户表单,以记录一天中特定时间的计数。

enter image description here

我自动将日期和日期添加到前两个字段中。与其他日期相比,一周中的某天有不同的字段,因此使用if语句:

Private Sub UserForm_Initialize()
If Format(Date, "ddd") <> "Sat" Then
    DateWkd.Value = Format(Date, "mm/dd/yy")
    DayWkd.Value = Format(Date, "ddd")
Else
    DateSat.Value = Format(Date, "mm/dd")
    DaySat.Value = Format(Date, "ddd")
End If
End Sub

数据将在一天的不同时间提交。

如何查找最后一行的日值是否等于今天的日期以更新行,或者如果日期不匹配,则创建新行?

1 个答案:

答案 0 :(得分:1)

由于注释对代码不利,因此会多写一些。

通常,您应该适当地限定引用,因此在这种情况下,使用用户表格时,您将需要指定工作表/等。

Dim lr as Long, varDay as Long
varDay = 1  'assumes using ColumnA, but you could make this a Find() function if necessary
With Sheets("Data")
    lr = .Cells( .Rows.Count, varDay).End(xlUp).Row
    If DateTextBox.Value <> .Cells(lr,varDay).Value Then 'Not sure if you want just Date (todays' date, no time) or the value in your input for the comparison (gave arbitrary name for textbox example)
        'Do your thing
    End if
End With

这将在您用于输入数据的命令按钮中,以确定数据的去向。如果需要在初始化时从工作表中提取数据,则可以设置textbox.value = .cell引用...请注意,这两种情况不在同一模块中。