it-roy-ru.com

VBA Сумма диапазона ячеек

Я пытаюсь написать простой макрос VBA, который будет брать столбец активной ячейки и вводимые пользователем данные, чтобы добавить диапазон ячеек в одну строку вместе. Диапазон рассчитывается путем добавления целого числа, которое пользователь вводит в активный столбец, и это конечный столбец. Проблема в том, что он выдает ошибку времени выполнения «424» и говорит «Требуется объект». Когда я запускаю его и злюсь на сумму строки.

Вот мой код Я только начинаю в VBA, так что это не может быть так сложно .... верно?

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

Ошибка в том, как вы пытаетесь суммировать диапазон. Попробуйте вот так:

total = WorksheetFunction.Sum(month)

Всякий раз, когда вы видите проблему в VBA, попробуйте изолировать ее и решить отдельно. Например, в вашем случае что-то подобное помогло бы, как пример изоляции:

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