我试图打开基于工作表中一行单元格值的用户表单。有17个用户表单,所以我不想为每个表单使用17个if语句,如下所示:
If ActiveCell.Value = 1 Then
UserForm1.Show
End If
有没有一种方法,我可以使用一个变量来显示的形式?
我在想的沿着这样的:
Dim i
Do
If ActiveCell.Value = "" Then
Exit DO
End If
i = ActiveCell.Value
UserForms("UserForm" & i).Show ****THIS is what doesn't work
ActiveCell.Offset(0,1).Select
Loop
6条答案
按热度按时间v09wglhw1#
从Harvey提供的链接粘贴代码,然后在代码中调整以下行:
致:
这是一个伟大的链接哈维,我已经书签!
7ivaypg92#
你可以使用经常被忽视的VBA.UserForms对象。参见this link,它完整地描述了你需要做什么。
我在这里解释是没有意义的。
哈维
42fyovps3#
我从来没有遇到过@Harvey提到的方法(尽管我喜欢它),所以我会使用某种Select Case语句:
至少比17个If语句简单。
abithluo4#
最简单的方法是这个:
也许它对提问的人不起作用,但我相信它对将来检查这个问题的人会有帮助
e4yzc0pl5#
获取由字符串名称定义的
UserForm
对象euoag5mw6#
这里有一个“更快”的代码打开的形式(饶Haribabu演变):