作者:iamlaosong

曾经看到这么一个问题:

有一个VBA应用的例子中有这么一句代码:
    ThisWorkbook.DialogSheets("Start").Show
我找了整个工程都没有看见有“Start”这个sheet,但是程序能运行并且有对话框显示,请问这个对话框如何才能找到?

通过研究,发现原来这儿的DialogSheets实际上就是MS EXCEL 5.0 对话框这个对象在VBA集成环境中看不到,但是可通过show这个方法显示出来。这个对话框中可以添加控件,并进行编程,由此涉及到工作表到底有几种类型呢?

XlSheetType 可为以下 XlSheetType 常量之一。
xlChart
xlDialogSheet
xlExcel4IntlMacroSheet
xlExcel4MacroSheet
xlWorksheet

右键工作表标签后,选“插入”后,会出现插入工作表类型选择,见下图:


对应如下
xlChart  图表
xlDialogSheet   MS EXCEL 5.0 对话框
xlExcel4IntlMacroSheet 国际通用宏表
xlExcel4MacroSheet MS EXCEL 4.0 宏表
xlWorksheet 工作表
如果不出现xlExcel4IntlMacroSheet类型(见下图),执行下面过程后,插入工作表类型就会出现国际通用宏表。
Sub insert1()
Sheets.Add after:=Sheets(Sheets.Count), Type:=xlExcel4IntlMacroSheet
End Sub



下面简单说说对话框工作表的用法:

插入对话框后,可对其进行编辑,添加控件,对控件指定宏,实现某种功能,最后可右击选择执行对话框,进行测试,如下图所示:


执行后的效果如下:


下面是一个利用对话工作表作为登录界面的例子:



'登录窗口
Sub login()
    With Sheets("Dlg_login")
        .EditBoxes.Text = ""
        .Labels.Caption = ""
    End With
    Times = 0
    Sheets("Dlg_Login").Show
End Sub

对其中的按钮指定宏,就可以实现密码校验了。

其它讨论还可参见下列链接:点击打开链接


Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐