web-dev-qa-db-fra.com

VBA somme une plage de cellules

J'essaie d'écrire une macro VBA simple qui prend la colonne de la cellule active et l'entrée de l'utilisateur pour ajouter une plage de cellules sur une seule ligne. La plage est calculée en ajoutant le nombre entier saisi par l'utilisateur à la colonne active et correspondant à la colonne de fin. Le problème est que cela me donne l'erreur d'exécution '424' et me dit "Objet requis". Quand je le lance et que je me fâche contre la ligne de somme.

Voici mon code. Je viens juste de commencer dans VBA, donc ça ne peut pas être si difficile… non?

Sub Food()
Dim first As Variant
Dim last As Integer
Dim days As Integer
Dim month As Variant
Dim total As Double
first = ActiveCell.Column
days = InputBox("Days in the month?")
last = first + days
month = Range(Cells(first, 4), Cells(last, 4))
total = Excel.WorksheetFunction.Sum(Report.Range(month))
Worksheets(1).Cells(1, 13).Value = total
End Sub
2
Josh

L'erreur est la façon dont vous essayez de résumer la plage. Essayez comme ça:

total = WorksheetFunction.Sum(month)

Lorsque vous rencontrez un problème dans VBA, essayez de l’isoler et de le résoudre séparément. Par exemple, dans votre cas, quelque chose comme ceci aurait aidé, à titre d'exemple d'isolement:

Option Explicit

Sub TestMe()

    Dim rngRange As Range
    Set rngRange = Range("A1:A5")

    'Any of these is ok:
    Debug.Print WorksheetFunction.Sum(rngRange)
    Debug.Print WorksheetFunction.Sum(Range("A1:A5"))
    Debug.Print WorksheetFunction.Sum(1, 2, 3)
    Debug.Print WorksheetFunction.Sum(Array(1, 2, 3))
    Debug.Print WorksheetFunction.Sum(Array(1, 1, 545), Array(-2))

End Sub
0
Vityata