2

我是 VBA 的新程序员,我需要比较不同工作表中的值才能做出决定。

我在其中一个工作表中有一个测试模板,其他工作表有每个学生的答案。实际上,在 Sheet1 的单元格 A1 中是正确答案。现在我必须浏览所有表格并检查每个答案的单元格 A1 中是否正确。

我的代码如下:

Function Answer(Var As Range) As Long

   For Each Plan In ThisWorkbook.Worksheets
       Plan.Activate
       If Plan.Range(Var).Value = 1 Then 'Line 4
          Answer = Answer + 1
       End If
   Next Plan

End Function

在第 4 行中,我尝试获取当前单元格的值。但是,它返回一个#Value 错误。谁能帮我?

非常感谢您的帮助!

问候,

4

2 回答 2

2

编辑:

对不起,那太快了。这个应该工作:

Function Answer(Var As Range) As Long
   For Each Plan In ThisWorkbook.Worksheets
       If Plan.Range(Var.Address).Value = 1 Then 'Line 4
          Answer = Answer + 1
       End If
   Next Plan

End Function
于 2013-02-21T13:33:52.850 回答
0

似乎您将错误的参数传递给函数。由于您想检查A1每张纸的范围,我建议进行以下修改:

Function Answer(rngAddress as String) As Long
   For Each Plan In ThisWorkbook.Worksheets  
      If Plan.Range(rngAddress).Value = 1 Then  Answer = Answer + 1       
   Next Plan
End Function
'Usage:
Debug.Print Answer("A1")

提示:您无需激活工作表即可从单元格中获取值

于 2013-02-21T13:34:34.003 回答