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 として宣言し、sub プロシージャ内とすべての sub プロシージャの外の両方に配置しようとしましたが、うまくいきませんでした。サブ プロシージャ内の UserName 変数を他のすべてのサブ プロシージャ外のパブリック変数 UserName2 に割り当てようとした後、UserName2 変数を再度使用しようとしましたが、うまくいきませんでした。

だからどんな助けでも大歓迎です

ありがとうガレス

4

1 に答える 1

1

以下をStandard Moduleに配置します。

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 に答える