Vba 将一个用户表单中的数据用于另一个用户表单中的公式

Vba 将一个用户表单中的数据用于另一个用户表单中的公式,vba,excel,Vba,Excel,对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 userf

对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
尝试在模块中放置b c d l w x和y,并在公共场合进行设置,但代码仍然不起作用。错误“需要对象”


非常感谢。

在类模块中声明变量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如果在文本框中输入的值真的有效,则不进行检查或其他检查。

一种粗略的方法

1) 声明一些
Public
变量的
Double
类型

因此,在项目中选择的任何模块中,都应将此a放在首位

   Public aValue As Double, bValue As Double, cValue As Double, dValue As Double
2) 按如下方式更改代码

用户表单1

    Option Explicit

    Private Sub OK_Click()
        Dim l As Double, w As Double

        aValue = CDbl(a.Value)
        bValue = CDbl(b.Value)
        cValue = CDbl(c.Value)
        dValue = CDbl(d.Value)

        l = aValue + bValue
        w = cValue + dValue

        Me.Hide
        With UserForm2
            .Show
        End With
    End Sub
用户表单2

    Private Sub OK_Click()
        Dim x As Double, y As Double

         x = aValue + dValue
         y = bValue + cValue
    End Sub

而类似的…

x=cdbl(Userform1.a.value)+cdbl(Userform1.d.value)
起作用吗?谢谢!当我运行它时没有错误,但似乎仍然有问题,因为它没有给出正确的答案。还忘了提到我将问题简化为2个userforms,但userform1可以是8个中的任意一个。有什么建议吗?a、b、x和y等是什么?物体?它们是文本框、滚动条值还是类似的东西?文本框。我也找到了答案。仍在研究如何从不同的用户窗体调用数据。建议阅读和。描述了另一种方法。另一个类似的例子