2013-02-21 57 views
2

我是VBA中的新程序员,我需要比较不同工作表中的值来做出决定。操作多个工作表中的数据-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错误。 任何人都可以帮助我吗?

非常感谢您的帮助!

问候,

回答

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 
+0

哦获得的价值,它的工作原理非常简单!非常感谢彼得。 – 2013-02-21 14:26:32

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") 

提示:您不需要激活工作表,以便从一个细胞

相关问题