所以我在excel上做了一个调查表,其中包含工作簿打开时的用户表单(所以当你打开excel时)。 userform使用户选择他想要使用的语言(法语或英语)。我的问题是我希望userform只在用户第一次打开文件时弹出。因此,他打开文件,选择语言,回答问题并保存文件。如果他重新打开文件,我希望他/她不再选择语言。
有没有办法让用户表单只在首次使用时出现?
如果没有,我正在考虑在问卷打开时更改问卷中某个方框中的值,然后将该值链接到用户表单,以便下次如果值已更改则不会打开。我不知道这是否可能。
感谢您的帮助,
文森特
答案 0 :(得分:0)
一种常见且简单的方法是使用隐藏的工作表,您可以在保存后使用单元格存储值。
Private Sub Workbook_Open()
'Where HiddenSheet is the name of your hidden worksheet
If ActiveWorkbook.Sheets("HiddenSheet").Cells(1, 1).Value = 0 Then
'Code to open the form
End If
End Sub
然后,一旦用户完成了问题,您可以更改单元格值,使其不再打开。
ActiveWorkbook.Sheets("HiddenSheet").Cells(1, 1).Value = 1
答案 1 :(得分:0)
我喜欢在我想要隐藏的工作表中使用此语句。
Private Sub Worksheet_Activate()
If ActiveSheet.Visible Then ActiveSheet.Visible = False
End Sub
基本上用户可以尝试取消隐藏工作表,但它会立即再次隐藏它。当然,您仍然需要密码来保护代码,但我发现有助于防止向用户显示他们不需要担心的信息。
以为我会添加这个,因为它似乎与问题的一部分有关。希望它有所帮助。
答案 2 :(得分:0)
我认为更好的方法是保留所有访问文件的用户的日志:
Application.Username()
或
Environ()
函数。
然后使用 Workbook.Open 事件,运行一段代码:
只有用户名,没有日期和时间戳。
这是一种万无一失的方法,具有双重好处,即保留曾经访问过该文件的所有用户的历史记录。