Использование СУММ в макросе (Microsoft Excel)
Бобу необходимо использовать функцию СУММ в макросе, чтобы найти сумму всех значений в столбце. Проблема в том, что количество суммируемых ячеек будет различным; при одном запуске макроса это может быть 100 ячеек, при следующем — 300, а при третьем — только 25.
Во-первых, из макроса легко использовать большинство функций рабочего листа (например, СУММ). Все, что вам нужно сделать, — это поставить перед именем функции «Application.WorksheetFunction». или просто «WorksheetFunction». Таким образом, если вы знаете, что каждый запуск макроса потребует суммирования A1: A100, затем A1: A300 и, наконец, A1: A25, вы можете использовать такой макрос:
Public Sub Sum_Demo() Dim myRange Dim Results Dim Run As Long For Run = 1 To 3 Select Case Run Case 1 myRange = Worksheets("Sheet1").Range("A1", "A100") Case 2 myRange = Worksheets("Sheet1").Range("A1", "A300") Case 3 myRange = Worksheets("Sheet1").Range("A1", "A25") End Select Results = WorksheetFunction.Sum(myRange) Range("B" & Run) = Results Next Run End Sub
Этот макрос использует For. . . Следующий цикл для указания различных диапазонов суммирования ячеек. Затем он использует функцию рабочего листа СУММ для присвоения суммы переменной результатов, которая (наконец) вставляется в ячейку в столбце B. Результаты первого запуска помещаются в B1, второго — в B2, а третьего — в B3. .
Хотя этот конкретный макрос может быть не таким полезным, он показывает несколько полезных методов, например, как определить именованный диапазон, как использовать функцию SUM и как вставить сумму в ячейку. Макрос не показывает, как выбрать переменное количество ячеек для суммирования. Для этого лучше всего полагаться на метод End объекта Range. В следующей строке кода показано, как можно заполнить сумму диапазона, начиная с A1 и расширяясь до первой пустой ячейки в столбце:
myRange = ActiveSheet.Range("A1", Range("A1").End(xlDown)) Range("B1") = WorksheetFunction.Sum(myRange)
Обратите внимание, что диапазон (myRange) определяется как начинающийся с A1 и продолжающийся до всего, что возвращает метод End. Затем это суммируется и вставляется в B1.
_Примечание: _
Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (3217) применим к Microsoft Excel 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Excel (Excel 2007 и новее) здесь:
link: / excelribbon-Using_SUM_In_a_Macro [Использование SUM в макросе]
.