2013-02-21 59 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") 

提示:您不需要激活工作表,以便從一個細胞

相關問題