使用VBA的用户表单输入

时间:2018-08-19 03:22:38

标签: excel vba forms user-controls

因此,我有一个用户表单,其中包含以下内容-输入框,下拉菜单,提交按钮和关闭(X)按钮;在一个名为“ A”的工作簿中。

我想在新工作簿“ B”中编写VBA代码,这将在A中打开用户表单,使用B中的值填写输入框和下拉列表,然后单击表单上的提交按钮。这可能吗?

注意:我不想更改工作簿A中用户表单后面已经编写的代码。

1 个答案:

答案 0 :(得分:0)

有可能。

在工作簿“ B”中,您需要使用Application.Run来运行宏(有关更多详细信息,请参阅“帮助”),并传递您要用来填充用户窗体的信息:

Sub CallUserFormInOtherDoc()
  Dim aList() As Variant
  Dim wb1 as Workbook
  Dim wb2 as Workbook

  Set wb1 = ThisWorkbook
  Set wb2 = Workbooks("Workbook With UserForm")

  aList = Array(1, 2, 3) 'substitute your code to populate the array for the listbox
  wb2.Activate
  Application.Run "OpenPopulateUserForm", "abc", aList
  wb1.Activate
End Sub

在工作簿“ A”中,您需要一个带有打开并填充用户窗体的代码的模块:

Public Sub OpenPopulateUserForm(tbVal As String, aList() As Variant)
  Dim f As UserForm1
  Set f = New UserForm1
  f.TextBox1.Text = tbVal
  f.ListBox1.list = aList
  f.Show
End Sub

请注意:

  1. 两个工作簿都必须打开
  2. 用户窗体将在工作簿“ A”上运行