VBA UsedRange Sum

#excel #vba

#excel #vba

Вопрос:

Я совсем новичок в VBA, и я изо всех сил пытаюсь понять некоторые ключевые вещи.

Почему я не могу вычислить сумму UsedRange в A1, выполнив следующее?

 Sub UsedR_S

Range("A1").Value = ActiveSheet.UsedRange.Sum

End sub
 

Это потому, что функция sum работает только в том случае, если вы помещаете данные после нее, а не перед ней?

Комментарии:

1. Вы можете использовать Application.Sum(ActiveSheet.UsedRange) или WorksheetFunction.Sum(ActiveSheet.UsedRange) .

2. UsedRange является Range . У Range объекта нет .Sum метода.

3. Если вы не знакомы со свойством / методом, доступным для объекта, вам всегда следует сначала ознакомиться с документацией ( документация по объекту диапазона ), щелкните объект в VBE, затем нажмите F1, как правило, откроется страница документации для чтения. (например, в строке Range("A1").Value = ActiveSheet.UsedRange.Sum щелкните слово UsedRange , затем нажмите F1, чтобы прочитатьоткройте UsedRange документацию по свойствам, в которой вы увидите, что это на самом деле Range объект.)

4. Большое вам спасибо. Итак, способ узнать свойства и методы, которые может использовать range, перечислены здесь, верно? docs.microsoft.com/en-us/office/vba/api/excel.range (объект) Поскольку «суммы» там нет, это означает, что она не может быть методом / свойством для «диапазона»? Правильно ли это рассуждение?

5. Точно. Вы также можете увидеть их для всех объектов в VBE, лучше всего с помощью переменной, например Dim rg As Range: Set rg = Range("A1") . Теперь, когда вы вводите следующую строку rg. (обратите внимание на точку), появится intellisense VBA, показывающий список всех методов и свойств. Попробуйте сами.