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
等。。。看到这个了吗