2017-04-30 56 views
-1

Stackoverflow的新增功能 - 嘗試將單元格範圍的總和存儲到變量中。我使用的公式如下:Excel VBA - 變量等於總和值不起作用

Sub obtainhours() 

Dim Total As Integer 

Worksheets("22012017").Activate 
Total = WorksheetFunction.Sum(Range("D2,D50")) 


End Sub 

任何幫助將不勝感激!

謝謝

+1

歡迎來到SO。您無需爲此激活表單。你的錯誤是你使用「,」而不是「:」。試試這個Total = WorksheetFunction.Sum(工作表(「22012017」)。Range(「D2:D50」)) – Tehscript

回答

0

首先,你應該申報Total作爲Long,因爲它能夠存儲比Integer>32767)較大的數值。

而且Why use Long instead of Integer

您應該避免使用Activate,因爲它會減慢你的代碼的運行時間,而不是使用完全合格的對象,通過實施With聲明。

Sub obtainhours() 

Dim Total As Long 

With Worksheets("22012017") 
    ' Option 1: get the Sum of cells "D2" and "D50" only 
    Total = WorksheetFunction.Sum(.Range("D2,D50")) 

    ' Option 2: get the Sum of cells "D2 through cell "D50" 
    Total = WorksheetFunction.Sum(.Range("D2:D50")) 
End With 

End Sub