在userform2命令按钮上单击从两个用户表单更新工作表中的值

时间:2017-08-31 17:51:32

标签: excel-vba vba excel

我有两个用户表单 - Userform1有很少的文本框,组合框和复选框,并有一个命令提交按钮,在其中卸载userform1并显示userform2 Userform2有另一组文本框和组合框以及一个提交按钮。

我希望userform2提交按钮立即将userform1和userform2中的所有数据更新到我的工作表(而不是先将userform1数据更新为工作表,然后再移动到userform2并更新其数据)

Private Sub cmdsubmitdata_Click()
Application.ScreenUpdating = False
Windows("EMPDATA.xlsm").Activate
Sheets("EMP").Select

Range("B2").Select
Selection.End(xlDown).Select
ActiveCell.Offset(0, 1).Select
ActiveCell.FormulaR1C1 = NewJoinerEntry.Txtfirstname.Text

Range("B2").Select
Selection.End(xlDown).Select
ActiveCell.Offset(0, 4).Select
ActiveCell.FormulaR1C1 = ComboGender.Text

Range("B2").Select
Selection.End(xlDown).Select
ActiveCell.Offset(0, 14).Select
ActiveCell.FormulaR1C1 = ComboWageType.Text

点击此按钮,它会更新ComboGender&的值。我的工作表上的ComboWageType但不更新我的userform1上的Txtfirstname。

2 个答案:

答案 0 :(得分:0)

您将需要使用全局变量来保存Userform1中的值。

Public FirstName as String

Sub WhateverYouNamedUserForm1Sub()
     'Regular code you have in there
     FirstName = Txtfirstname.Value 'Check the name of the actual text box
End Sub
Private Sub cmdsubmitdata_Click()
     'Regular code you have in there
     ActiveCell.FormulaR1C1 = FirstName
     'Regular code you have in there
End Sub

有关全局变量的更多信息,请参阅此处:  How do I declare a global variable in VBA?

答案 1 :(得分:0)

谢谢西里尔。定义一个全局变量肯定会有所帮助,但我想直接将文本框值调用到工作表。它以一种非常简单的方式排序。 好吧,我也可以称自己为愚蠢。我不得不使用Userform1.hide而不是卸载userform1。卸载userform1正在删除我猜的存储条目。现在排序谢谢:)