VBA 代码请帮忙

VBA 代码请帮忙

我需要帮助。我需要编写一个 VBA 代码,我需要将答题纸上的 ID 号与每个学生提交的内容进行匹配(单独打开每个学生提交的内容),完成后我需要对其进行评分并给出分数。如果 ID 匹配(学生与答题纸匹配),则可得一分,如果不匹配则无分,如果学生提交的内容中有重复的 ID,则只扣半分。

完成后,所有重复项都需要移至名为“复习记录表”的工作表,所有满分都移至成绩表。请提供任何帮助,因为这是我拥有的,并且无法运行

Dim i As Integer
Dim Grade As Double
Dim GradePoint As Long
Dim ID As Integer
Dim counter As Integer
Dim FinalGrade As Integer


'Find and Open Reviewed Records File
' user selected a file - do something
userSelectedFile = Application.GetOpenFilename
If userSelectedFile = False Then
MsgBox "No file Selected."
Else
' user selected a file - do something
MsgBox "File selected: " & userSelectedFile
Set wbNew = Workbooks.Open(userSelectedFile)
End If

'Find and Open Reviewed Records File
' user selected a file - do something
userSelectedFile = Application.GetOpenFilename
If userSelectedFile = False Then
MsgBox "No file Selected."
Else
' user selected a file - do something
MsgBox "File selected: " & userSelectedFile
Set wbNew = Workbooks.Open(userSelectedFile)
End If
   
    For counter = 1 To 1000
    FinalGrade = FinalGrade + 1
    
        If counter > 0 Then
            FinalGrade = FinalGrade + 0.5
            
            Else
            
            If counter <> 0 Then
            FinalGrade = FinalGrade + 0
            
            Else
            
            If counter = 0 Then
            FinalGrade = FinalGrade + 1
            
            Else
            
            End If
   
   
    
 Do
 
 For Each ID In Collection
        If counter > 0 Then
            FinalGrade = FinalGrade + 0.5
        ID = ReviewedRecordsSheet
    Else
    
      
            If counter = 0 Then
            FinalGrade = FinalGrade + 1
        ID = GradeFileSheet
 
Loop Until ID = GradeFile

••••ˇˇˇˇ

答案1

我将您的代码复制到 Notepad++ 中以获取行号。

在模块开头使用 OPTION EXPLICIT。有很多变量没有使用 DIM 声明。这可能会导致错误。作为初学者,请不要在不使用 OPTION EXPLICIT 的情况下编写代码!

13 MsgBox "未选择文件。" '*** 缺少缩进!
17 Set wbNew = Workbooks.Open(userSelectedFile) '*** 您没有声明 setwbNEw
31 For counter = 1 To 1000 '*** 您应该缩进循环的内容,而不是循环本身。您在哪里终止循环?缺少哪个语句?!
32 FinalGrade = FinalGrade + 1 '缩进此行以及循环的其他内行
34-49 几行上的 IF 构造必须以 END IF 结尾。如有疑问,请从完整的外部 IF 构造开始,然后再添加内部 IF 构造
55 For Each ID In Collection '*** 缩进在哪里?

您缺少很多 END IF 语句!打印出您的代码并在属于 IF/END IF 结构的代码部分周围绘制方框。

相关内容