2017-04-30 8 views
-1

変数にセルの範囲の合計を格納しようとしています。私が使用している公式は以下の通りです:Excel VBA - 合計値に等しい変数が動作しない

Sub obtainhours() 

Dim Total As Integer 

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


End Sub 

助けてくれれば幸いです!

はあなたに

+1

ようこそ。この目的でシートを有効にする必要はありません。あなたの間違いは、 ":"の代わりに "、"を使用することです。このTotal = WorksheetFunction.Sum(Worksheets( "22012017")。Range( "D2:D50")) 'を試してください。 – Tehscript

答えて

0

まずありがとうございました、それはInteger>32767)よりも大きな数値を格納することが可能なので、あなたは、LongとしてTotalを宣言する必要があります。

またWhy use Long instead of Integer

それはあなたのコードの実行時間を遅くするようあなたはWith文を実装することにより、完全修飾オブジェクトを使用する代わりに、Activateを使用しないでください。

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 
関連する問題