使用userform中文本框的值激活工作表上的另一个文本框

时间:2018-02-14 11:32:40

标签: excel-vba vba excel

首先,我和初学者一样初学者。 我试图从嵌入在用户表单中的文本框中获取值,然后在另一行代码中使用它来激活工作表上的另一个文本框。

Private Sub CommandButton1_Click()

UserForm2.Hide

Dim FieldName As String
FieldName = UserForm2.TextBox1.Value

Worksheets("Quote").FieldName.Activate
End Sub

我希望你能从这段代码中看到我正在尝试的内容。错误是“运行时错误'438':对象不支持此属性或方法”。 从文本框获得的值与另一个的名称相同,并且已经过测试以查看是否可以检索它。

如果有人能告诉我使用的正确功能,那就非常有必要。

1 个答案:

答案 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}}。