【发布时间】:2016-08-16 09:03:36
【问题描述】:
我在一个名为“userform”的 Excel 文件上有一个用户表单:
Private Sub add1_Change()
End Sub
Private Sub add2_Change()
End Sub
Private Sub Calc_Click()
Result.Value = Val(add1.Value) + Val(add2.Value)
End Sub
此用户表单从用户那里获取值并将它们相加并在文本框中显示结果。
我想在另一个名为“input”的工作簿中创建一个新宏。此工作簿中的宏应打开用户表单工作簿,在文本框 add1 和 add2 中输入值,然后运行用户表单计算按钮。
到目前为止我已经尝试过:
- 设置
add1.value以从例如单元格A1 中提取一个值,add2.value也是如此。 - 然后我在输入工作簿上创建了一个宏来更改单元格 A1 和 A2 中的值。
这里的问题是我不知道如何打开用户窗体并单击计算。
理想情况下,我想要一个打开用户表单、输入数据并点击计算然后关闭用户表单的宏 - 而不是编辑用户表单本身。
【问题讨论】:
-
为什么要使用用户表单呢?表单的重点是从用户那里获取输入。如果你不这样做,那就没有多大意义了。
-
在 wb 中有类似
Public Sub getUF(a): Set a = UserForm1: End Sub的用户表单,允许直接捕获该对象...只需运行getUF MyUFVariable然后使用MyUFVariable就像你一样用户表单... -
@Rory 我同意你的观点,但是我有一个比显示的更大的用户表单,这样做会更容易,而不是从头开始分解用户表单。这正是我现在需要做的。
-
@DirkReichel 你能详细说明一下吗?我已经添加了您所说的内容,但是说我想更改 add1 文本框上的值,我该如何称呼它?现在,我有这个:'Sub userform() Dim a As Integer Dim b As Integer a = Cells(1, 2) b = Cells(2, 2) Workbooks.Open (ThisWorkbook.Path & "\userform.xlsm" ) Application.Run "userform.xlsm!Calc" End Sub' calc 宏只是打开了用户窗体,我不知道如何实际“输入”数据或点击计算
-
@james1395 您想从
Worksheet获取输入,进行计算然后将其放在某处?你的UserForm还做了什么不希望现在更改为纯 VBA 代码选项而不是不需要的UserForm的