0

当我调用SetFocus我的文本框时,它会引发此错误:

Run-time error '438':   
Object doesn't support this property or method. 

Excel 2013 中是否SetFocus随时可用,或者我是否必须修补或更新我的 Excel 的任何组件?

4

2 回答 2

0

我想Setfocus()可能永远不会抛出这样的错误!


对象不支持此属性或方法(错误 438)

此 OLE 自动化对象不存在此方法或属性。有关对象的更多信息并检查属性和方法的拼写,请参阅对象的文档。

这里你有一个方法SetFocus(),所以你需要知道这个方法什么时候不存在


在 Office 2013 中,如果对象或其容器之一不可见或不启用,则会引发此错误:

运行时错误“2110”:
无法将焦点移至控件,因为它不可见、未启用或属于不接受焦点的类型。


并且当我测试通过引发循环时Enter Event也不会抛出错误,并且还有类似的使用SetFocus()方法:

Private Sub TextBox1_Enter()
    TextBox2.SetFocus
End Sub

Private Sub TextBox2_Enter()
    TextBox1.SetFocus
End Sub

我想不出任何其他原因!

于 2015-04-14T15:20:35.060 回答
0

请看这个答案:https ://www.vbforums.com/showthread.php?646411-RESOLVED-How-can-I-make-setfocus-ot-Textbox-in-vba

毕竟您使用的是 Excel,但您在工作表上而不是用户窗体上拥有文本框。Setfocus 将适用于用户窗体上的文本框,但正如您所发现的,如果它们在实际工作表上则不行。而不是 setfocus 尝试激活:

Private Sub CommandButton1_Click()
TextBox1.Activate
End Sub
于 2021-01-29T10:51:03.910 回答