Jody正在开发自定义工具栏按钮并将宏分配给按钮。她希望每当可见至少一个工作表时就启用按钮,但她正在努力寻找适当的代码来处理这种情况。

可以采用多种方法,就像在Excel之类的多样化环境中所假定的那样。一种可能的解决方案是创建一个例程,简单地检查屏幕上是否有可见的窗口。如果有,则可以启用工具栏按钮;如果没有,则可以将其禁用。下面的宏可以做到这一点:

Sub CheckButtons()

Dim bOneOpen As Boolean     Dim I As Integer     Dim J As Integer          bOneOpen = False     For I = 1 To Workbooks.Count         For J = 1 To Workbooks(I).Windows.Count             If Workbooks(I).Windows(J).Visible Then bOneOpen = True         Next J         If bOneOpen Then Exit For     Next I     If bln Then         'enable buttons     Else         'disable buttons     End If End Sub

注意宏底部附近的两个注释。您需要做的就是用适当的代码替换这些注释,以启用或禁用工具栏按钮。 (代码会有所不同,具体取决于按钮的数量和配置。)

可以手动调用此宏,也可以从窗口更改触发的任何事件中调用此宏,例如在打开,调整大小,最小化,最大化或还原窗口时触发的事件。

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(2618)适用于Microsoft Excel 97、2000、2002和2003。