Цей підручник покаже вам, як використовувати функцію 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 замість значення буде формула.