如何仅显示userform 1次

时间:2015-05-18 08:23:34

标签: excel vba excel-vba

在VBA for excel中,我有一个userform然后我希望它只显示1个实例。即使用户重新打开它,它也不会再次打开。它有什么代码吗?好吧,我也在使用此代码进行登录:

Private Sub UserForm_Initialize()

User.Caption = Environ("Username")

End Sub

我在想我是否可以在我的问题中使用此代码。希望快速回应。谢谢你们,你们真棒!

2 个答案:

答案 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

如果该属性尚未设置,则会抛出错误,因此捕获错误会让您知道您是否已设置该属性(并显示该表单)。