excel - 使用 VBA 的用户表单输入
问题描述
因此,我有一个用户表单,其中包含以下内容 - 输入框、下拉菜单、提交按钮和关闭 (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
在工作簿“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
注意:
- 两个工作簿都必须打开
- 用户窗体将在工作簿“A”上工作
推荐阅读
- c - C fscanf 给出分段错误。说缺少文件(我的文件名为 lab4.dat 并且位于同一位置)
- swiftui - SwiftUI,UIScreen.main.bounds.midY 默认不居中
- azure-data-factory - 使用参数的 Azure 数据工厂数据流表达式生成器
- python - 'DataFrame' 对象没有属性 'map' 添加更多列
- bash - 使用特殊字符显示文件名
- java - 不确定为什么这个特定的测试用例不适用于合并二叉树
- r - 如何将 ggplot 的参数传递给重叠函数?
- webpack - 在 create-react-app (CRA) 中获取总包大小
- html - 如何修复 figcaptions 中的字符限制?网格画廊
- javascript - 从 JavaScript 函数获取返回 URL 并将其作为参数发送到操作