Excel 用户表单复选框问题

Excel 用户表单复选框问题,excel,vba,checkbox,userform,Excel,Vba,Checkbox,Userform,因此,我使用了建议的编码,但它不起作用。所以我编辑并澄清了它,希望我的文档可能只是太挑剔了,但这也不起作用。我在这一部分的全部代码如下。有人能帮我理解为什么这不起作用吗 下面几行以将文本框字段移动到我的数据库开始,然后我的数据库进行一些计算。这些计算返回“T”或“F”。然后,我的userform检索该信息,如果字段为“T”,则会在userform中实时选中复选框。我正试图使我的编码禁用一个没有“T”且未选中的复选框,以便无法在userform中标记它。但是,我确实需要用户能够从后面有“T”的复选

因此,我使用了建议的编码,但它不起作用。所以我编辑并澄清了它,希望我的文档可能只是太挑剔了,但这也不起作用。我在这一部分的全部代码如下。有人能帮我理解为什么这不起作用吗

下面几行以将文本框字段移动到我的数据库开始,然后我的数据库进行一些计算。这些计算返回“T”或“F”。然后,我的userform检索该信息,如果字段为“T”,则会在userform中实时选中复选框。我正试图使我的编码禁用一个没有“T”且未选中的复选框,以便无法在userform中标记它。但是,我确实需要用户能够从后面有“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```

禁用用户没有资格使用的复选框:

If Sheets("Travel Expense Voucher").Range("Data_Start").Offset(TargetRow, 28).Value = "T" Then
    frmUserTravel.chkMorning = Checked
Else
    frmUserTravel.chkMorning = Unchecked
    frmUserTravel.chkMorning.Enabled = False
End If
If Sheets("Travel Expense Voucher").Range("Data_Start").Offset(TargetRow, 30).Value = "T" Then
    frmUserTravel.chkMidday = Checked

Else
    frmUserTravel.chkMidday = Unchecked
    frmUserTravel.chkMidday.Enabled = False
End If

If Sheets("Travel Expense Voucher").Range("Data_Start").Offset(TargetRow, 32).Value = "T" Then
    frmUserTravel.chkEvening = Checked
Else
    frmUserTravel.chkEvening = Unchecked
    frmUserTravel.chkEvening.Enabled = False
End If

使用复选框的事件,如果选中,则继续,如果不选中,则取消操作。这将允许他们取消选中复选框,但不允许他们选中未选中的框?哈哈,那是一口这有意义吗?它将取消复选框并阻止它们对其进行任何操作(不是完全相同的事情)。允许他们更改的框可以随意勾选和取消勾选(这比只允许取消勾选更方便用户)哦,你是说如果他们被取消勾选,他们什么都做不了,但是如果他们被勾选,他们可以离开或取消勾选。是吗?如果条件不适用,则复选框将被取消选中并禁用,从而阻止用户更改它们。如果条件确实适用,则默认情况下会选中该复选框,并且可以随意更改。如果您尝试使用该代码,将尽最大努力,非常感谢您的帮助。:)如果我还有任何问题,我会在这里告诉你!!