首先,我和初学者一样初学者。 我试图从嵌入在用户表单中的文本框中获取值,然后在另一行代码中使用它来激活工作表上的另一个文本框。
Private Sub CommandButton1_Click()
UserForm2.Hide
Dim FieldName As String
FieldName = UserForm2.TextBox1.Value
Worksheets("Quote").FieldName.Activate
End Sub
我希望你能从这段代码中看到我正在尝试的内容。错误是“运行时错误'438':对象不支持此属性或方法”。 从文本框获得的值与另一个的名称相同,并且已经过测试以查看是否可以检索它。
如果有人能告诉我使用的正确功能,那就非常有必要。
答案 0 :(得分:0)
关于Sub Private Sub CommandButton1_Click()
On Error Resume Next
Dim NameOfTextBox As String
NameOfTextBox = UserForm2.TextBox2.Value
Worksheets(1).OLEObjects(NameOfTextBox).Activate
Worksheets(1).Shapes(NameOfTextBox).Select
Unload Me
On Error GoTo 0
End Sub
的名称,我假设按钮位于表单中,而TextBox位于工作表中。通常,Excel中有两种类型的TextBox - ActiveX控件或Form控件,它们的处理方式不同:
What is the difference between "Form Controls" and "ActiveX Control" in Excel 2010?
如果您不确定TextBox是ActiveX控件还是ControlElement,那么以下内容将起作用。不知。
On Error Resume Next
警告:这是一个快速而肮脏的例子。代码,请考虑仅出于学习原因使用它。
在制作中,最好使用表格,因为它们应该被使用(参见https://codereview.stackexchange.com/questions/154401/handling-dialog-closure-in-a-vba-user-form)并尽量避免使用{{1}}。