gpt4 book ai didi

excel - Excel VBA 中的文本框提示文本

转载 作者:行者123 更新时间:2023-12-02 17:10:30 25 4
gpt4 key购买 nike

您知道有时您会在输入字段中看到提示输入答案的文本吗?当您单击它时,它会消失,但如果您在未输入任何内容的情况下取消选择,它就会回来。

如何在 Excel 文本框中完成此操作?这完全可以做到吗?

我想如果我将一个点击宏附加到文本框,并且该宏能够告诉您单击了哪个文本框,我就可以完成此任务,但点击宏的问题是它不允许您选择对象首先,所以你不知道点击了什么。而且我不想在 Click 宏代码中对文本框名称进行硬编码。

最佳答案

我认为您指的是用户窗体中的“占位符”。我用来实现此目的的两个技巧是“tag”属性以及 EnterExit 事件。首先,创建将在Enter(焦点)和Exit(模糊)时触发的子模块。

Sub TB_enter(TB_name)
If Len(Me.Controls(TB_name).Tag) = 0 Then
Me.Controls(TB_name).Tag = Me.Controls(TB_name).Value
Me.Controls(TB_name).Value = vbNullString
End If
End Sub
Sub TB_exit(TB_name)
If Len(Me.Controls(TB_name).Value) = 0 Then
Me.Controls(TB_name).Value = Me.Controls(TB_name).Tag
Me.Controls(TB_name).Tag = vbNullString
End If
End Sub

接下来,对于用户窗体上的每个文本框实例,在“查看对象”模式下双击该文本框。这将自动为更改事件创建一个 Private Sub。前往工具栏的右上角,将“更改”下拉列表更改为“Enter”。这将为 Enter 事件创建一个新的 Private Sub。再次重复此过程,但选择“退出”以创建退出事件。现在,只需将以下代码分别复制到 EnterExit 事件中(我使用了第一个文本框的默认名称,但这在调用事件时与名称无关) )。

Private Sub TextBox1_Enter()
TB_enter ActiveControl.Name
End Sub
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TB_exit ActiveControl.Name
End Sub

如果您将这些调用放在外部模块中,只需将“Me”替换为用户窗体的名称即可。

关于excel - Excel VBA 中的文本框提示文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8514760/

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