|
问题:
有,UserForm1,UserForm2,UserForm3......
求:当单元格F1=UserForm1时,打开窗体UserForm1即(UserForm1.Show),当单元格F1=UserForm2时,打开窗体UserForm2即(UserForm2.Show)......的表达式。
我想当然已为是Range("F1“).Show,结果是错的,请老师帮忙。
版主解答:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "F1" Then
Dim myForm As Object
On Error Resume Next
Set myForm = UserForms.Add(Target.Value)
If Not myForm Is Nothing Then myForm.Show
End If
End Sub
我把这种方法叫做“直呼其名”,不用循环判断,直接把它赋值给一个变量,如果出错或变量是Nothing,则窗体不存在
这种方法还可以判断工作表、工作簿等对象是否存在
ps:需要好好研究学下。
GMT+8, 2024-12-26 15:16 , Processed in 0.018082 second(s), 7 queries , Gzip On, MemCache On.
Powered by Discuz! X3.4
© 1999-2023 Wooffice Inc.
沪公网安备 31011702000001号 沪ICP备11019229号-2
本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任! 本站特聘法律顾问:李志群律师