Excel 使用VBA的用户表单条目

Excel 使用VBA的用户表单条目,excel,vba,forms,user-controls,Excel,Vba,Forms,User Controls,因此,我有一个用户表单,它有以下内容-一个输入框、一个下拉列表、一个提交按钮和一个关闭(X)按钮;在一本名为“A”的工作簿中 我想在新工作簿“B”中编写VBA代码,它将在a中打开用户表单,使用B中的值填写输入框和下拉列表,然后单击表单上的提交按钮。这可能吗 注意:我不想更改工作簿A中用户表单后面已经编写的代码。这是可能的 在工作簿“B”中,您需要使用Application.Run来运行宏(有关更多详细信息,请参阅帮助),并传递要用于填充用户表单的信息: Sub CallUserFormInOth

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

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

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

这是可能的

在工作簿“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
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
在工作簿“A”中,您需要一个模块,其中包含打开和填充用户表单的代码:

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
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
请注意:

  • 两个工作簿都必须打开
  • 用户表单将用于工作簿“A”

  • 欢迎光临!这是一个程序员编写自己的代码并与他们遇到的特定问题共享问题的站点。请参阅“”,以及如何创建和您的问题以提供更多信息。如果我不想对工作簿进行任何更改,该怎么办?a.甚至不添加模块等。即使这样,是否可能?