Excel VBA: не удается суммировать () по диапазону ()

#excel #vba

#excel #vba

Вопрос:

Как мне исправить этот код, потому что он выдает: «Объект не поддерживает это свойство или метод»

 Sub macro1()
    Workbooks("OUTPUT.xls").Sheets("Sheet1").Activate
    ActiveSheet.Range("B4") = _ 
    Workbooks("INPUT.xlsx").Sheets("Sheet1").Sum(Range("D40:D50"))
End Sub
  

Приведенный выше код отлично работает при настройке как:

 Sub macro2()
    Workbooks("OUTPUT.xls").Sheets("Sheet1").Activate
    ActiveSheet.Range("B4") = _
    Workbooks("INPUT.xlsx").Sheets("Sheet1").Range("D40")
End Sub
  

Однако это неприемлемое решение, потому что я хочу суммировать () по диапазону (), как описано в macro1 ().

Ответ №1:

попробуйте

 ActiveSheet.Range("B4").Formula = Application.WorksheetFunction.Sum(Range("D40:D50"))
  

Ответ №2:

В WorkSheet нет функции sum, попробуйте вместо этого использовать WorksheetFunction:

 Sub macro1() 
    Workbooks("OUTPUT.xls").Sheets("Sheet1").Activate
    ActiveSheet.Range("B4") = _
        Application.WorksheetFunction.Sum(Workbooks("INPUT.xlsx").Sheets("Sheet1").Range("D40:D50"))
End Sub