【发布时间】:2020-01-23 02:39:58
【问题描述】:
我正在开发一个 Excel 用户表单,并且所有代码都可以正常工作,除了一个。我将附上下面的代码,但我希望这是一个简单的修复。正如您在我的代码中看到的,当用户输入出发时间和到达时间时,数据将进入我的数据库并执行计算,然后将其发送回我的用户表单复选框。虽然这是根据需要工作的,但我发现如果用户在离开用户表单之前进行了一次更改,则信息会在我的数据库中适当更新,但用户表单复选框没有更新。有人可以告诉我我需要做什么(如果有的话)以使这些实时工作并随我的数据库文档发生变化吗?
Private Sub txtDepartTime_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'When time is entered, time transfers immediately to spreadsheet time calculations datafield.
Dim TargetRow As Long
TargetRow = Sheets("Codes").Range("D43").Value + 1
If Not txtDepartTime Like "##:## [ap]m" Then
MsgBox "Time entered is not valid. Please enter time as hh:mm am/pm.", vbExclamation
Cancel = True
Exit Sub
End If
With Sheets("Travel Expense Voucher").Range("Data_Start").Offset(TargetRow, 25)
.Value = TimeValue(txtDepartTime)
.NumberFormat = "hh:mm" 'departure time for checkbox calculation
End With
End Sub
Private Sub txtArrivalTime_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'When time is entered, time transfers immediately to spreadsheet datafield and sends back to userform which meals are allowed.
Dim TargetRow As Long
TargetRow = Sheets("Codes").Range("D43").Value + 1
If Not txtArrivalTime Like "##:## [ap]m" Then
MsgBox "Time entered is not valid. Please enter time as hh:mm am/pm.", vbExclamation
Cancel = True
Exit Sub
End If
With Sheets("Travel Expense Voucher").Range("Data_Start").Offset(TargetRow, 26)
.Value = TimeValue(txtArrivalTime)
.NumberFormat = "hh:mm" 'arrival time for checkbox calculation
End With
'''MEALS ALLOWED PER SPREADSHEET TO USERFORM'''
With Me.chkMorning
If Sheets("Travel Expense Voucher").Range("Data_Start").Offset(TargetRow, 28).Value = "T" Then
.Value = Checked
Else
.Value = Unchecked
.Enabled = False
End If
End With
With Me.chkMidday
If Sheets("Travel Expense Voucher").Range("Data_Start").Offset(TargetRow, 30).Value = "T" Then
.Value = Checked
Else
.Value = Unchecked
.Enabled = False
End If
End With
With Me.chkEvening
If Sheets("Travel Expense Voucher").Range("Data_Start").Offset(TargetRow, 32).Value = "T" Then
.Value = Checked
Else
.Value = Unchecked
.Enabled = False
End If
End With
'''END MOVEMENT OF MEALS ALLOWED TO USERFORM'''
End Sub
【问题讨论】:
-
请阅读我几分钟前对类似问题的回答。同时,我会看看你的情况的特点。 stackoverflow.com/questions/59870537/…