#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, показывающий список всех методов и свойств. Попробуйте сами.