我有两个用户表单 - 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。
答案 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正在删除我猜的存储条目。现在排序谢谢:)