0

我之前发布了一个关于这个的垃圾问题并且已经离开并做了一些工作以重新提出。基本上我做了一个 ppt 测验,计算一个人给出了多少正确和错误的答案。然后它会在最后将此信息反馈给用户。但是我现在想要发生的是我希望存储结果,以便我可以返回并查看每个用户在测验中的表现。理想情况下,我希望它能够在 6 台联网计算机上工作,将所有测验结果存储在一个地方。但如果需要,我可以从 6 台计算机中的每台计算机中获取一个文件。

到目前为止,我的代码如下所示:

Dim username As String
Dim numberCorrect As Integer
Dim numberWrong As Integer

Sub YourName()
username = InputBox(prompt:="Type your Name")
MsgBox " Get Ready to begin " + username, vbApplicationModal, " Orange 1C Book 7"
End Sub

Sub correct()
numberCorrect = numberCorrect + 1
ActivePresentation.SlideShowWindow.View.Next
End Sub

Sub incorrect()
numberWrong = numberWrong + 1
ActivePresentation.SlideShowWindow.View.Next
End Sub

Sub Start()
numberCorrect = 0
numberWrong = 0
YourName
ActivePresentation.SlideShowWindow.View.Next
End Sub

Sub Results()
MsgBox "Well done " & username & " You got " & numberCorrect & " out of " & numberCorrect + numberWrong, vbApplicationModal, "Orange 1C Book 7"

End Sub'

任何帮助将不胜感激。不知道从哪里开始下一步。

4

1 回答 1

1

这是你的一个选择......但首先要解释一下。此代码将创建 TXT 文件。每次有人到达Results宏时,它都会将结果添加到文件中。因此,一个文件将保留所有结果,直到您不删除它们(或文件)。因此,我添加了分隔线和日期/时间信息,以便您轻松找到合适的结果。

Sub Save_Results_To_Txt()

    'set file results location to activepresentation path
    'or could be changed to any path string
    Dim strWhere As String
        strWhere = ActivePresentation.Path
    'let's set name of the file separately
    Dim strName As String
        strName = "\results.txt"

    Dim ff As Long
    ff = FreeFile

    Open strWhere & strName For Append As #ff

    Write #ff, Now & vbTab & username
    Write #ff, numberCorrect & vbTab & vbTab & numberWrong
    Write #ff, String(30, "-")

    Close #ff

End Sub

您需要添加Save_Results_To_Txt到您的Results子中,可能MsgBox在行之前。

您的 results.txt 文件将如下所示:

"2013-04-25 16:11:05    Tom"
"10     11"
"------------------------------"
"2013-04-25 16:11:23    Mark"
"11     10"
"------------------------------"
于 2013-04-25T14:17:16.460 回答