Функція суми VBA (діапазони, стовпці та інше)

Цей підручник покаже вам, як використовувати функцію Excel Sum у VBA

Функція підсумовування є однією з найбільш широко використовуваних функцій Excel і, ймовірно, першою, якою користувачі Excel навчаються користуватися. VBA насправді не має еквівалента - користувач повинен використовувати вбудовану функцію Excel у VBA за допомогою Робочий лист об'єкт.

Функція підсумкового аркуша

Об'єкт WorksheetFunction можна використовувати для виклику більшості функцій Excel, доступних у діалоговому вікні Вставка функції в Excel. Функція SUM - одна з них.

123 Субтестова функціяДіапазон ("D33") = Application.WorksheetFunction.Sum ("D1: D32")End Sub

Ви можете мати до 30 аргументів у функції SUM. Кожен з аргументів також може посилатися на діапазон клітинок.

Цей приклад нижче додасть клітинки D1 ​​до D9

123 Sub TestSum ()Діапазон ("D10") = Application.WorksheetFunction.SUM ("D1: D9")End Sub

У наведеному нижче прикладі буде додано діапазон у стовпці D та діапазон у стовпці F. Якщо ви не введете об’єкт Application, це буде прийнято.

123 Sub TestSum ()Діапазон ("D25") = Функція робочого аркуша.SUM (Діапазон ("D1: D24"), Діапазон ("F1: F24"))End Sub

Зверніть увагу, що для одного діапазону клітинок вам не потрібно вказувати слово "Діапазон" у формулі перед клітинками, це передбачається кодом. Однак, якщо ви використовуєте кілька аргументів, вам це потрібно зробити.

Присвоєння результату Суми змінній

Можливо, ви захочете використати результат своєї формули в іншому місці коду, а не писати його безпосередньо в діапазон Excel. Якщо це так, ви можете призначити результат змінній для використання пізніше у вашому коді.

1234567 Sub AssignSumVariable ()Затемнити результат як подвійний'Призначте зміннуresult = WorksheetFunction.SUM (Діапазон ("G2: G7"), Діапазон ("H2: H7"))'Покажіть результатMsgBox "Загальна кількість діапазонів" та результатEnd Sub

Просумуйте об'єкт діапазону

Ви можете призначити групу клітинок об'єкту Range, а потім використовувати цей об'єкт Range разом із Робочий лист Функція об'єкт.

123456789 Sub TestSumRange ()Зменшити діапазон як діапазон'призначити діапазон клітинокВстановити rng = Діапазон ("D2: E10")'використовуйте діапазон у формуліДіапазон ("E11") = Функція робочого аркуша.SUM (rng)'випустіть об'єкт діапазонуВстановити rng = нічогоEnd Sub

Сума кількох об'єктів діапазону

Подібним чином можна підсумувати кілька об’єктів діапазону.

123456789101112 Sub TestSumMultipleRanges ()Dim rngA As RangeDim rngB як діапазон'призначити діапазон клітинокВстановити rngA = Діапазон ("D2: D10")Встановити rngB = Діапазон ("E2: E10")'використовуйте діапазон у формуліДіапазон ("E11") = Функція робочого аркуша.SUM (rngA, rngB)'випустіть об'єкт діапазонуВстановити rngA = НічогоВстановити rngB = нічогоEnd Sub

Сума цілої колонки або рядка

Ви також можете використовувати функцію підсумовування, щоб скласти весь стовпець або цілий рядок

Ця процедура нижче додасть усі числові осередки у стовпці D.

123 Sub TestSum ()Діапазон ("F1") = Функція робочого аркуша.SUM (Діапазон ("D: D")End Sub

Хоча ця процедура нижче додасть усі числові осередки у рядку 9.

123 Sub TestSum ()Діапазон ("F2") = Робочий лист Функція.SUM (Діапазон ("9: 9")End Sub

Підсумуйте масив

Ви також можете використовувати WorksheetFunction.Sum для додавання значень у масиві.

123456789101112 Sub TestArray ()Dim intA (від 1 до 5) як ціле числоDim SumArray як ціле число'заповнити масивintA (1) = 15intA (2) = 20intA (3) = 25intA (4) = 30intA (5) = 40'додайте масив і покажіть результатMsgBox WorksheetFunction.SUM (intA)End Sub

Використання функції SumIf

Іншою функцією робочого аркуша, яку можна використовувати, є функція SUMIF.

123 Sub TestSumIf ()Діапазон ("D11") = Функція робочого аркуша.SUMIF (Діапазон ("C2: C10"), 150, Діапазон ("D2: D10"))End Sub

Наведена вище процедура додасть клітинки в діапазоні (D2: D10), лише якщо відповідна клітинка у стовпці C = 150.

Формула підсумків

Коли ви використовуєте Робочий лист Функція щоб додати суму до діапазону на вашому аркуші, повертається статична сума, а не гнучка формула. Це означає, що коли ваші цифри в Excel змінюються, значення, яке було повернуто Робочий лист Функція не зміниться.

У наведеному вище прикладі процедура TestSum додала Діапазон (D2: D10), і результат був поміщений у D11. Як ви можете бачити на панелі формул, цей результат є цифрою, а не формулою.

Якщо в діапазоні (D2: D10) зміниться якесь із значень, результат у D11 буде НІ зміна.

Замість того, щоб використовувати Робочий листФункція.SUM, ви можете використовувати VBA, щоб застосувати функцію підсумовування до комірки за допомогою Формула або Формула R1C1 методи.

Метод формули

Метод формули дозволяє вказати конкретно на діапазон клітинок, наприклад: D2: D10, як показано нижче.

123 Підтест СумФормулаДіапазон ("D11"). Формула = "= SUM (D2: D10)"End Sub

Формула R1C1 Метод

Метод FromulaR1C1 є більш гнучким, оскільки не обмежує вас певним діапазоном клітинок. Наведений нижче приклад дасть нам таку ж відповідь, як і наведений вище.

123 Sub TestSumFormula ()Діапазон ("D11"). Формула R1C1 = "= SUM (R [-9] C: R [-1] C)"End Sub

Однак, щоб зробити формулу більш гнучкою, ми могли б змінити код так:

123 Sub TestSumFormula ()ActiveCell.FormulaR1C1 = "= SUM (R [-9] C: R [-1] C)"End Sub

Де б ви не були на своєму аркуші, формула потім додасть 8 клітинок безпосередньо над ним і помістить відповідь у вашу ActiveCell. Діапазон всередині функції SUM слід посилати за допомогою синтаксису рядка (R) та стовпця (C).

Обидва ці методи дозволяють використовувати формули динамічного Excel у VBA.

Тепер у D11 замість значення буде формула.

Ви допоможете розвитку сайту, поділившись сторінкою з друзями

wave wave wave wave wave