如何显示一条消息,对excel状态栏使用VBA
| excel中的状态栏可用作代码监视器。当您的VBA代码很长并且您使用VBA执行多项任务时,通常会禁用屏幕更新,以免看到屏幕闪烁。但是由于这个原因,您不知道代码中正在发生什么。
如果您不知道excel中的状态栏在哪里,则为:
您可以使用Excel的状态栏从Excel获取信息,而不会干扰代码的执行。您可以在状态栏上显示Marco的阶段,也可以将其用作进度栏。
VBA代码在Excel状态栏上显示消息
Application.StatusBar = "Message"
StatusBar是Application对象的一个属性,该属性将文本作为输入。
在这个例子中,我只是显示哪个函数正在运行…
Sub DisplayMessageOnStatusBar() Application.ScreenUpdating = False Application.StatusBar = "Calling function one " ' call function_1 Application.Wait (Now + TimeValue("00:00:2")) Application.StatusBar = "Calling function two" 'Call function_2 Application.Wait (Now + TimeValue("00:00:2")) Application.StatusBar = "Calling function Three" 'Call function_3 Application.Wait (Now + TimeValue("00:00:2")) Application.StatusBar = "" Application.ScreenUpdating = True End Sub
在此示例中,屏幕更新开始时设置为False。
现在,在调用function_1之前,我正在显示一条消息,该消息正在调用函数1。
Application.Wait(Now + TimeValue(“ 00:00:2”))这行代码只是伪造一个冗长的函数调用,因此我有2秒的时间在状态栏上看到它。
我在所有函数调用之前完成了此操作,最后,我将状态栏设置为空白(“”)。
状态栏消息对于使用冗长的代码显示消息非常有用。当您的代码经过多个阶段或长时间运行时,可以在状态栏上显示该代码,以便用户知道代码正在运行。否则,用户可能会认为系统已挂起。
现在,您可以使用此单行代码使用Excel 2016、2013、2010和2007的VBA在状态栏上智能地获取信息。
旧帖子
某些vba宏/代码需要很长时间才能运行或执行所需的操作。如果您在代码开头使用Application.ScreenUpdating = False行关闭了屏幕更新,那么如果任何用户运行该代码,他们将不知道发生了什么并认为计算机系统没有响应。您可以要求代码在状态栏上显示状态消息,以便通知用户代码的当前状态。
|这是一个简单的代码,它提供一个消息框,显示从第2行到最后一行的A列中的值。状态栏在代码运行时将显示消息“ Macro running”(宏运行),一旦完成,它将显示“就绪”,这是默认的Excel消息之一。
Option Explicit Sub macro1() Dim i As Long, lrow As Long Application.ScreenUpdating = False Application.DisplayAlerts = False Application.DisplayStatusBar = True With Worksheets(“Sheet1”) lrow = .Range(“A” & .Rows.Count).End(xlUp).Row For i = 2 to lrow Application.StatusBar = “Macro running” Msgbox .Range(“A” &i).Value Next i End With Application.StatusBar = “” Application.ScreenUpdating = True Application.DisplayAlerts = True End Sub
要将上面的代码复制到文件中,请执行以下操作:*按键盘上的Alt + F11。
-
在左侧,您将看到Microsoft Excel对象。
-
右键单击并选择插入。
-
然后单击模块。
-
将代码复制到右侧的代码窗口。
您可以在下面的模块中看到发布的代码-
现在让我们了解代码的每一行是什么-因此,我们首先将DISPLAYSTATUSBAR设置为true,然后将状态栏设置为消息。一旦在代码末尾使用_Application.StatusBar =“” _,它将恢复为默认的Excel消息为READY。
这是宏运行时状态栏的图片。
宏完成后,状态栏将显示如下–
因此,类似地,您可以在代码的不同部分更新状态栏,以便用户知道宏运行时正在发生的情况。
有时,可能有一个或多个宏覆盖多个进程,并且此状态栏对于了解宏到达哪个进程很有用。
如果您喜欢我们的博客,请在Facebook上与您的朋友分享。您也可以在Twitter和Facebook上关注我们。
我们很高兴收到您的来信,请让我们知道我们如何改进,补充或创新我们的工作,并为您做得更好。写信给我们[email protected]
热门文章:
link:/ formulas-and-functions-vlookup-function简介[如何在Excel中使用VLOOKUP函数]