在VBA for excel中,我有一个userform然后我希望它只显示1个实例。即使用户重新打开它,它也不会再次打开。它有什么代码吗?好吧,我也在使用此代码进行登录:
Private Sub UserForm_Initialize()
User.Caption = Environ("Username")
End Sub
我在想我是否可以在我的问题中使用此代码。希望快速回应。谢谢你们,你们真棒!
答案 0 :(得分:3)
是的,这是可能的。
您必须添加新工作表。在单元格A1
中输入0
(零),然后隐藏它。在调用UserForm
的代码中,请使用:
Sub ShowMyForm()
If ThisWorkbook.Worksheets("HiddenSheet").Range("A1")=0 then MyUserForm.Show
End Sub
表格形式:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
ThisWorkbook.Worksheets("HiddenSheet").Range("A1")=1
ThisWorkbook.Save()
DoEvents
End Sub
答案 1 :(得分:0)
如果您不想添加额外的工作表只是为了存储一个bool,您可以设置这样的自定义文档属性:
Private Sub Workbook_Open()
On Error Resume Next
Dim test As Boolean
test = Me.CustomDocumentProperties("UserFormShown").Value
If Err.Number = 0 Then Exit Sub
UserForm1.Show
Me.CustomDocumentProperties.Add "UserFormShown", False, msoPropertyTypeBoolean, True
End Sub
如果该属性尚未设置,则会抛出错误,因此捕获错误会让您知道您是否已设置该属性(并显示该表单)。