Vba 如何突出显示TextBox/RefEdit控件的内容并同时设置焦点?

Vba 如何突出显示TextBox/RefEdit控件的内容并同时设置焦点?,vba,excel,userform,Vba,Excel,Userform,我想突出显示TextBox/RefEdit控件的内容,并在出现任何无效条目时以及在提示警告错误的消息框之后同时设置焦点,以便用户知道在哪里修复错误。您可以尝试Data>Analysis>DataAnalysis>Sampling并输入一些无效的范围/数据,然后您将被重定向到无效的条目。无效条目将高亮显示,并设置焦点(您可以看到闪烁的光标) 我试着模仿这个我用 aControl.SetFocus aControlt.SelStart = 0 aControl.SelLength = Len(aCo

我想突出显示TextBox/RefEdit控件的内容,并在出现任何无效条目时以及在提示警告错误的消息框之后同时设置焦点,以便用户知道在哪里修复错误。您可以尝试
Data>Analysis>DataAnalysis>Sampling
并输入一些无效的范围/数据,然后您将被重定向到无效的条目。无效条目将高亮显示,并设置焦点(您可以看到闪烁的光标)

我试着模仿这个我用

aControl.SetFocus
aControlt.SelStart = 0
aControl.SelLength = Len(aControl.Text)

虽然控件内的内容以蓝色突出显示,但没有闪烁的光标,就好像我没有设置控件的焦点一样。我怎样才能解决这个问题?或者,将用户引导到存在无效条目的位置的最佳方法是什么?

如果用户输入多个无效条目,该怎么办。你如何计划它们同时被选中和聚焦


对于您和用户来说,没有必要使事情复杂化。您可以做的是创建不可见的标签,其中包含您想要传递给用户的正确消息,最好是红色,并将其放置在每个文本框/RefEdit的下方。在条件检查中使用标签1.visible=True使它们可见

我的代码有一个验证部分,它按照一定的顺序检查条目,如果发现一个条目无效,则停止。因此,只有这个无效的条目才会被选择和设置聚焦。我可以问一下,在你已经实现了设置聚焦和高光后,闪烁效果的点是什么吗?我想是为了纯粹的美学。无论如何,我可能只接受高亮显示而不闪烁光标。如果希望光标闪烁并且用户注意文本框,则可以尝试这些选项:.SetFocus.BackColor=vbRed.Value=“”