首页 > 解决方案 > 使用来自一个用户表单的数据在另一个用户表单中进行公式化

问题描述

对 vba 很陌生,并且一直在尝试弄清楚如何使用我的第一个用户表单中的数据到我的第二个用户表单。

我们称他们为 userform1 和 userform2

因此,在 userform1 中,用户将为 a、b、c 和 d 输入数据。单击确定后,userform2 将打开:

Private Sub OK_Click()
     l = cdbl(a.value)+cdbl(b.value) 
     w = cdbl(c.value)+cdbl(d.value)

     userform1.hide
     userform2.show
End Sub

在 userform2 中,我需要 a 和 b 的值(由用户在 userform1 中输入)来计算 x 和 y:

Private Sub OK_Click()
     x = cdbl(a.value)+cdbl(d.value) 
     y = cdbl(b.value)+cdbl(c.value)
End Sub

尝试在模块中放置 abcdlwx 和 y 并在 Public 中设置,但代码仍然不起作用。错误“需要对象”

首先十分感谢。

标签: vbaexcel

解决方案


一个简单的也许不是最好的方法是在类模块中声明变量 a 和 b。更好的方法可能是通过属性传递它们。

Userform1 中的代码

Option Explicit

Public a As Double
Public b As Double

Private Sub CommandButton1_Click()
    a = TextBox1.Value
    b = TextBox2.Value
    Me.Hide
End Sub

用户表单 2 中的代码

Option Explicit

Public x As Double
Public y As Double

Private Sub CommandButton1_Click()
    TextBox1.Value = x + y
End Sub

你可以像这样测试它

Sub Demo()

Dim f1 As New UserForm1
Dim f2 As New UserForm2

    f1.Show
    f2.x = f1.a
    f2.y = f1.b
    f2.Show

End Sub

PS 如果在文本框中输入的值确实有效,则不进行检查或其他检查。


推荐阅读