gpt4 book ai didi

excel - 制作输入框,以便用户可以输入他/她的名字并在每个消息框中使用

转载 作者:行者123 更新时间:2023-12-04 21:14:36 25 4
gpt4 key购买 nike

所以我想问一下如何制作一个输入框并将结果/输入用于我的消息框,这样就可以代替通常的“Hello User”,而是他们的名字。这是我的尝试

Sub WorksheetActivate()
Dim Msg
Msg = "please enter your name"

If ActiveSheet("Sheet1").Select Then
InputBox(msg,"dear user")
End If

End Sub

最佳答案

由于多种原因,您的代码可能无法编译或运行。

If ActiveSheet("Sheet1").Select Then

ActiveSheet是一个全局范围的对象,它代表了事件工作表。如果您想使用 Sheet1 ,然后使用 Sheet1 :
If Sheet1.[...] Then

如果 Sheet1在编译时不存在,您需要从 Workbook 中检索它目的:
If ActiveWorkbook.Worksheets("Sheet1").[...] Then
.SelectSub选择指定工作表的过程。它不返回任何东西。 If ... Then需要 bool 表达式,因此您的代码只有在 .Select 时才是合法的返回了 Boolean ,或可以隐式转换为 1 的值。

除了,您已经在工作表模块的代码隐藏中:您可能想要使用该工作表。如果是这种情况,那么您不需要做任何事情:工作表刚刚被激活(因为您正在处理 Activate 事件),所以它是 ActiveSheet你不需要 Select无论如何;您可以使用 Me引用该表:
Me.Range("A1").Value = 42

Sub WorksheetActivate()


工作表事件(实际上是所有事件)对其处理程序遵循非常具体的命名方案:
Private Sub EventSource_EventName()

就目前而言, WorksheetActivate只是另一个(隐式) Public可以从任何地方调用的过程 - 但它不会处理 Activate任何工作表的事件,因为它的签名与 Activate 的处理程序的签名不匹配 Worksheet 的事件界面。

永远不要手动输入事件处理程序签名:签名必须完全匹配,包括参数(名称无关紧要,但顺序和类型很重要)。

相反,请注意代码 Pane 顶部的两个下拉菜单。最左边的下拉菜单显示 (General) ;单击它,然后选择 Worksheet .这将为某些默认事件创建一个新的处理程序,或者如果它已经存在,则将您带到它。现在,左侧下拉菜单显示 Worksheet ,查看另一个下拉列表中的内容: Worksheet 公开的每个事件界面在那里!选择一个,编辑器会自动生成带有正确签名的处理程序。

InputBox(msg,"dear user")


这行代码在编辑器中实际上如下所示:
InputBox (msg,"dear user")

注意 InputBox 之间的空格和参数列表:那是编辑器告诉你“我将把这些括号之间的所有东西都取出来,将它作为一个表达式求值,然后将它 ByVal 传递给过程”。自从 (msg, "dear user")不是可以评估的表达式,代码无法编译。

如果你不关心函数的返回值(即用户的输入),你可以简单地去掉括号:
InputBox msg, "dear user"

但是你确实关心它——你想稍后在某个地方重用那个输入。在模块范围内声明一个变量来保存该值,以便该模块中的每个过程都可以看到它:
Private UserName As String

现在您将使用 InputBox 的返回值分配该变量。功能:
UserName = InputBox(msg, "dear user")

请注意,编辑器没有在 InputBox 之间放置空格。和 (现在。

现在您可以引用 UserName在该工作表的代码隐藏中的任何位置,使用用户上次激活工作表时提供的值。

请注意 Worksheet_Activate每次激活工作表时都会运行。所以你可以制作 InputBoxUserName 为条件为空:
If UserName = vbNullString Then
UserName = InputBox(...)
End If

最后,请注意 Application.UserName将返回 Excel 本身正在使用的用户名:
MsgBox "Hi, " & Application.UserName

例如,当您保存工作簿时,该值用于标识文档的作者。

您也可以使用 Windows 登录用户名,使用 Environ$函数和 USERNAME多变的:
MsgBox "Hi, " & Environ$("USERNAME")

经验法则,避免提示用户输入您可以通过其他方式获得的输入。

关于excel - 制作输入框,以便用户可以输入他/她的名字并在每个消息框中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52783630/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com