Kan*_*esh 3 excel vba excel-vba
我有一个共享的宏启用工作簿用于进行测验.我可以选择配置可以借助计算机名称访问测验的用户.一切都很好.但是,我想介绍一个功能来记录工作簿中的主要内容.用户不会手动输入任何内容.所有条目都使用userforms进行.
我创建了一个sub,每次用户执行我需要捕获的操作时都会运行.当单个用户处于活动状态时,代码就像魅力一样.当多个用户同时访问该文件时,会出现此问题.
问题是,用户会看到提示选择在关闭工作表时获胜的更改.我不希望这种情况发生.无论如何,可以删除提示并保存所有更改.
有没有解决方法呢?下面是我现在的代码.
Sub Actions()
QA_Quiz_Master.Save
Application.ScreenUpdating = False
UN = Evaluate("=UserNameWindows()")
QuizN = Sheet4.Range("F2").Value
totlog = Log.Range("A1048576").End(xlUp).Row + 1
Select Case Action
Case "Open"
Log.Range("C" & totlog).Value = "Accessed"
Case "Start"
Log.Range("C" & totlog).Value = "Started Quiz"
Case "Submit"
Log.Range("C" & totlog).Value = "Submitted Quiz"
Case "AdminContact"
Log.Range("C" & totlog).Value = "Contacted Admin"
Case "AccessRequest"
Log.Range("C" & totlog).Value = "Sent Access Request"
Case "Publish"
Log.Range("C" & totlog).Value = "Published Quiz"
Case "Republish"
Log.Range("C" & totlog).Value = "Republished Quiz"
Case "Withdraw"
Log.Range("C" & totlog).Value = "Withdrew Quiz"
Case "AnsPublish"
Log.Range("C" & totlog).Value = "Published Answers"
End Select
Log.Range("A" & totlog).Value = UN
Log.Range("B" & totlog).Value = QuizN
Log.Range("D" & totlog).Value = Now()
Log.Columns("A:D").EntireColumn.AutoFit
Application.DisplayAlerts = False
QA_Quiz_Master.Save
Application.ScreenUpdating = True
End Sub
Run Code Online (Sandbox Code Playgroud)
经过一番研究,我自己解决了问题.我只需要在sub的开头添加以下代码
If ActiveWorkbook.MultiUserEditing Then
QA_Quiz_Master.AcceptAllChanges
QA_Quiz_Master.Save
End If
Run Code Online (Sandbox Code Playgroud)