我正在使用Workbook_Open在打开应用程序时调用userform,这很正常。但是我希望它只在第一次打开时运行。 我尝试了这个,如果我从编辑器运行sub而不是打开文件时它可以工作。
Sub Workbook_Open()
If Worksheets("DataSheet").Range("A1").Value = "" Then
QuickStartForum.Show
End If
End Sub
注意:A1包含将在用户表单运行后填充的值
问题是,在将数据加载到工作表之前,它会打开用户表单。
这有可能解决这个问题,还是我需要采取不同的方法?
答案 0 :(得分:5)
我认为这是因为您在Module
中拥有此代码。您需要将代码放在“ThisWorkBook
”。
我尝试了以下代码,并且在“ThisWorkBook
”中没有问题时,它无法在“Module1
”内运行
Private Sub Workbook_Open()
If Worksheets("DataSheet").Range("A1").Value = "" Then
QuickStartForum.Show
Worksheets("DataSheet").Range("A1").Value = "filled" ' <-- this fills the cell with data for testing, so that when you reopen the file it should not re-open the userform
Else
MsgBox ("not shown because the A1 cell has data")
End If
End Sub