【发布时间】:2020-01-17 09:06:43
【问题描述】:
所以我使用了建议的编码,但它不起作用。因此,我对其进行了编辑和澄清,希望也许我的文档真的很挑剔,但这也不起作用。我对该部分的整个代码如下。谁能帮我理解为什么这不起作用?
下面的行首先将文本框字段移动到我的数据库,然后我的数据库进行一些计算。这些计算返回“T”或“F”。然后我的用户表单检索该信息,如果字段为“T”,则在用户表单中实时检查复选框。我试图让我的编码禁用没有“T”且未选中的复选框,因此无法在用户表单中标记它。但是,我确实需要用户能够从后面带有“T”并被选中的复选框中删除复选标记。
我的代码如下,它没有禁用未选中且后面没有“T”的复选框。
' When time is entered, time transfers immediately to spreadsheet datafield and sends back to userform which meals are allowed.
Dim TargetRow As Integer
TargetRow = Sheets("Codes").Range("D43").Value + 1
With Sheets("Travel Expense Voucher").Range("Data_Start").Offset(TargetRow, 26)
.Value = TimeValue(txtArrivalTime)
.NumberFormat = "hh:mm" 'arrival time
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```
【问题讨论】:
-
使用复选框的事件,如果它们被选中则继续,如果没有则取消操作。
标签: excel vba checkbox userform