在写vba代码时,有时需要指定工作表执行某些代码,在已知工作表名的情况下,可以将工作表名写入变量存储起来使用,但实际有些工作表可能存在命名不固定的情况,这就导致需要频繁更改代码中的工作表名。 而我们其实可以通过InputBox方法使用输入对话框选取指定工作表来获取工作表名,这样就可以不用事先在代码中写入工作表名导致代码需要频繁调整,增强代码的通用性和可移植性。具体代码如下: Sub 对话框选取指定工作表获取工作表名() prompt = "请使用鼠标选取要获取表名的工作表(选取要获取工作表的任意单元格区域即可)" '对话框内容 Title = "工作表选择对话框" '对话框标题栏 defaults = "" '文本框中的默认输入值 On Error GoTo -1 '配合"On Error GoTo XX"解决其单独使用只能处理一次报错的问题 On Error GoTo 取消选择 '错误处理语句。因为当对话框显示后,如果用户单击“取消”按钮,将显示一错误信息,所以必需使用On Error GoTo语句来绕过错误。 Set Rng = Application.InputBox(prompt, Title, defaults, , , , , 8) '使用Set语句将用户选择的单元格区域赋给变量rng。当Type参数设置为8时,将返回一个Range对象 On Error GoTo 0 '配合"On Error GoTo XX"中断错误处理语句,防止后续代码的报错无法提示 sheetname = Rng.Parent.Name '获取单元格区域所在工作表的名称 If Rng Is Nothing Then 取消选择: MsgBox "您选择了退出程序" End End If MsgBox "您选择的工作表表名为:" & sheetname End Sub 以上内容对您有帮助可以分享或转藏,避免以后找不到。想要了解更多VBA相关知识,欢迎到http://moqingyan.360doc.com我的个人图书馆查看。 |
|