2

我正在使用 Workbook_Open 在打开应用程序时调用用户窗体,这工作正常。但是我希望它只在第一次打开时运行。我试过了,如果我从编辑器运行子程序,它就可以工作,但当我打开文件时就不行。

Sub Workbook_Open()
If Worksheets("DataSheet").Range("A1").Value = "" Then
     QuickStartForum.Show
End If
End Sub

注意:A1 包含将在用户表单运行后填充的值

看来问题在于它在将数据加载到工作表之前打开了用户表单。

这是有办法解决这个问题还是我需要采取不同的方法?

4

1 回答 1

8

我认为这是因为您在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
于 2012-12-19T10:18:46.187 回答