Excel 使用从一个子过程到另一个子过程的输入框数据
需要一点帮助来解决一个问题,我希望这一切都是有意义的 我有一个子过程对表单进行排序,然后有一个输入框显示询问用户名 我有以下代码,可以执行此操作,然后将其添加到表单上的特定单元格中:Excel 使用从一个子过程到另一个子过程的输入框数据,excel,vba,Excel,Vba,需要一点帮助来解决一个问题,我希望这一切都是有意义的 我有一个子过程对表单进行排序,然后有一个输入框显示询问用户名 我有以下代码,可以执行此操作,然后将其添加到表单上的特定单元格中: Dim UserName as string UserName = Application.InputBox(Prompt:="Please Enter your Name", Title:="Name Of User", Type:=2) Range("A" & LastRow).Select Ac
Dim UserName as string
UserName = Application.InputBox(Prompt:="Please Enter your Name", Title:="Name Of User", Type:=2)
Range("A" & LastRow).Select
ActiveCell.FormulaR1C1 = "Name " & UserName
这很好,但我也打开了另一个工作簿,其中包含一些其他数据,这些数据在这一次之后从子过程中排序,这也很好,但我希望将UserName变量传递给另一个子过程,这样我就不必再次显示输入框
我曾尝试将变量声明为public,并将其放置在子过程内部和所有子过程外部,但没有成功。
我曾尝试将子过程内的UserName变量分配给所有其他子过程外的公共变量UserName2,然后尝试再次使用UserName2变量,但没有成功
因此,任何帮助都将不胜感激
谢谢
Gareth将以下内容放入标准模块中:
Dim UserName As String
Sub MAIN()
Call FirstSub
Call SecondSub
End Sub
Sub FirstSub()
Dim LastRow As Long
LastRow = 3
UserName = Application.InputBox(Prompt:="Please Enter your Name", Title:="Name Of User", Type:=2)
Range("A" & LastRow).Select
ActiveCell.FormulaR1C1 = "Name " & UserName
End Sub
Sub SecondSub()
MsgBox UserName
End Sub
然后运行MAIN将工作簿存储在变量中,然后完全限定范围,然后直接写入。例如
wb1.Sheets(“Sheet1”).Range(“A”&LastRow”).Value=“Name”和UserName
和wb2.Sheets(“Sheet1”).Range(“A”&LastRow”).Value=“Name”和UserName
如果过程在同一工作簿中,则可以在模块中声明公共变量。另外,请避免使用。选择,Activecell
等。。。看到这个了吗