0

需要一点帮助来解决问题,我希望这一切都有意义。

我有一个对表单进行排序的子过程,然后有一个输入框显示询问用户名。

我有以下代码执行此操作,然后将其添加到表单上的特定单元格:

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 变量,但没有成功。

所以任何帮助将不胜感激

谢谢加雷斯

4

1 回答 1

1

将以下内容放在标准模块中:

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

于 2013-08-09T11:14:33.277 回答