在msgbox提示中使用inputbox的输入

时间:2018-10-13 05:21:32

标签: excel vba

我正在制作一个InputBox,以便用户可以输入他/她的名称以用于MsgBox。代替“ hello user”,它将是“ hello(name)”。这是我的尝试。

Private Username As String
Username = InputBox(msg, "dear user")
InputBox msg, "dear user"
If Username = vbNullString Then
    Username = InputBox(msg, "dear user")
End If

我首先尝试制作输入框(正在工作)。

Private Sub Workbook_open()

    Worksheets("Sheet1").Select

    Dim msg
    msg = "Please enter your name here"
    InputBox msg, "dear user"

End Sub

2 个答案:

答案 0 :(得分:0)

欢迎使用Stackoverflow。

这是您要尝试的吗?

Sub Sample()
    Dim Ret As Variant

    Ret = InputBox("Please enter your name", "dear user")

    If Len(Trim(Ret)) <> 0 Then MsgBox "Hello " & Ret
End Sub
  

我尝试使用urcode,但这似乎不起作用?我尝试将其放置在工作表,模块和工作簿中,但什么也没发生D:哦,是的,我的目的是将输入框的输入用于所有我要在工作表中使用的所有msgboxes,首先说,如果文件打开,要求输入用户名;输入名称后,会出现一个msgbox,上面写着“欢迎使用游戏”(或类似内容),然后我的游戏会有不同的页面,例如掷骰子,迷宫等。因此,当用户转到页面时,它会欢迎他们再次通过msgbox对其进行了祝贺,并在游戏结束时向他们表示祝贺– 31分钟前,库尔特·辛科(Kurt Cinco)

在这种情况下,您不应使用公共变量。发生错误时,变量将重置。我建议将该名称保存到隐藏工作表中的单元格中。

A 。添加一个名为Settings的工作表电话。隐藏工作表。

B 。在打开的工作簿中,粘贴以下代码

Private Sub Workbook_Open()
    Dim Ret As Variant

    Ret = InputBox("Please enter your name", "dear user")

    If Len(Trim(Ret)) <> 0 Then
        ThisWorkbook.Sheets("Settings").Range("A1").Value = Ret
        MsgBox "welcome to the game " & Ret
    End If
End Sub

C :您可以在工作表代码中使用此代码

Sub Sample()
    Dim username As String

    username = ThisWorkbook.Sheets("Settings").Range("A1").Value

    MsgBox "Hello " & username
End Sub

答案 1 :(得分:0)

您可以设置ThisWorkbook对象属性

将此代码放置在ThisWorkbook代码窗格中:

Option Explicit

Private mUserName As String

Sub Workbook_Open()
    mUserName = InputBox("Please enter your name", "dear user")
End Sub

Public Property Get MyUserName() As String
    MyUserName = mUserName
End Property

现在您可以通过简单的编码即可从任何普通模块和/或工作表模块访问

MsgBox "hello " & ThisWorkbook.MyUserName

作为一种可能的增强,您可以通过适当地调整Workbook_Open()子项来强制用户输入有效名称,例如:

Sub Workbook_Open()
    Do
         mUserName = InputBox("Please enter your name", "dear user")
    Loop While mUserName = vbNullString
End Sub