我在excel文件上有一个名为" userform":
的用户表单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
此userform从用户获取值并将它们相加并在文本框中显示结果。
我想在名为" input"的另一个工作簿中创建一个新宏。此工作簿中的宏应打开userform工作簿,在文本框add1和add2中输入值,然后运行userform计算按钮。
到目前为止我尝试过的事情:
add1.value
以从单元格A1中提取值,对add2.value
类似地提取值。然后我在输入工作簿上创建了一个宏来更改单元格A1和A2中的值。这里的问题是我不知道如何强制excel打开用户表单并点击计算。理想情况下,我宁愿不通过我所做的事情。我想设置一个宏来打开用户表单,输入数据并点击计算然后关闭用户表单 - 而不是编辑用户表单本身
关于如何解决这个问题的任何想法,我们都非常感激。
答案 0 :(得分:0)
你可以用这种方式在UserForm
中添加2个值(它与你现在尝试的稍微不同):
您使用当前代码打开UserForm
:
Sub userform()
Workbooks.Open (ThisWorkbook.Path & "\userform.xlsm")
Application.Run "userform.xlsm!Calc"
End Sub
如上所示,您无法指定userform.xlsm Workbook
以下是您在Initialize
UserForm
中输入的代码
Private Sub UserForm_Initialize()
Dim wb As Workbook
Dim ws As Worksheet
Set wb = Workbooks("input.xlsx")
Set ws = wb.Worksheets("Input")
Dim i as Integer
Dim k as Integer
UserForm.add1.Value = ws.Range("A2").Value
UserForm.add2.Value = ws.Range("B2").value
UserForm.calc.Value = val(UserForm.add1.Value) + val(UserForm.add2.Value)
End Sub
如上所示calc
更改为Textbox
,因此您无需点击加载UserForm时直接完成的按钮。
您还可以使用Label
代替Textbox
。
然后代码将变为:
UserForm.calc.Caption = Str( val(UserForm.add1.Value) + val(UserForm.add2.Value) )