Vba 将一个用户表单中的数据用于另一个用户表单中的公式
对vba来说非常陌生,并且一直在尝试找出如何使用从第一个用户表单到第二个用户表单的数据 让我们称它们为userform1和userform2 所以在userform1中,用户将输入a、b、c和d的数据。单击确定后,userform2将打开: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
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等是什么?物体?它们是文本框、滚动条值还是类似的东西?文本框。我也找到了答案。仍在研究如何从不同的用户窗体调用数据。建议阅读和。描述了另一种方法。另一个类似的例子