我一直试图使它起作用,但是我看不到问题所在。 我的表单称为“ Request_Order”,“是/否”复选框称为“已处理”
Private Sub MarkProcessedOrig_Click()
Const cstrPrompt As String = _
"Are you sure you want to mark this request as processed? Yes/No"
If MsgBox(cstrPrompt, vbQuestion + vbYesNo) = vbYes Then
Request_Order.Controls(Processed).Value = True
Else: Cancel = True
End If
End Sub
答案 0 :(得分:1)
您的语法错误。集合元素由元素名称(字符串)或offset(整数)标识。因此,您需要这样做:
Request_Order.Controls("Processed").Value = True
您得到的错误是VBA运行时无法将您的语句解析为对象,因为您的代码说存在一个名为Processed
的变量,其结果为字符串,并且该变量为分配的字符串值,该字符串值是集合中控件之一的名称。由于那不是真的,您会收到此错误。
答案 1 :(得分:0)
需要删除“ Request_Order”,这不是必需的,删除后它将成功运行。
请尝试以下代码:
Private Sub CommandButton1_Click()
Const cstrPrompt As String = _
"Aref'jei you sure you want to mark this request as processed? Yes/No"
If MsgBox(cstrPrompt, vbQuestion + vbYesNo) = vbYes Then
Controls("CheckBox1").Value = True
Else: Cancel = True
End If
End Sub