尝试根据消息框响应设置值时出现错误代码 424
Error Code 424 when trying to set a value based on a message box response
我一直在努力让它工作,但我没有看到它的问题。
我的表单名为 "Request_Order",Yes/No 复选框名为 "Processed"
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
你的语法有误。集合元素由元素名称(字符串)或偏移量(整数)标识。所以你需要这样做:
Request_Order.Controls("Processed").Value = True
您遇到的错误是 VBA 运行时无法将您的语句解析为对象,因为您的代码表明有一个名为 Processed
的变量计算结果为字符串,并且该变量被分配了一个字符串值,该值是您集合中的控件之一的名称。因为那不是真的,你会得到这个错误。
需要删除'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
我一直在努力让它工作,但我没有看到它的问题。 我的表单名为 "Request_Order",Yes/No 复选框名为 "Processed"
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
你的语法有误。集合元素由元素名称(字符串)或偏移量(整数)标识。所以你需要这样做:
Request_Order.Controls("Processed").Value = True
您遇到的错误是 VBA 运行时无法将您的语句解析为对象,因为您的代码表明有一个名为 Processed
的变量计算结果为字符串,并且该变量被分配了一个字符串值,该值是您集合中的控件之一的名称。因为那不是真的,你会得到这个错误。
需要删除'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