Bob은 열에있는 모든 값의 합계를 찾기 위해 매크로에서 SUM 함수를 사용해야합니다. 문제는 합산 할 셀 수가 다양하다는 것입니다. 매크로를 한 번 실행하면 100 개의 셀이 될 수 있고, 다음에는 300 개, 세 번째에서는 25 개만 될 수 있습니다.

첫째, 매크로 내에서 대부분의 워크 시트 함수 (예 : SUM)를 사용하기 쉽습니다. 함수 이름 앞에 “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. . . 합산 할 다른 셀 범위를 지정하는 다음 루프. 그런 다음 SUM 워크 시트 함수를 사용하여 결과 변수에 합계를 할당합니다. 결과 변수는 B 열의 셀에 (마지막으로) 채워집니다. 첫 번째 실행의 결과는 B1에, 두 번째는 B2에, 세 번째는 B3에 배치됩니다. .

이 특정 매크로는 그다지 유용하지 않을 수 있지만 명명 된 범위를 정의하는 방법, SUM 함수를 사용하는 방법, 합계를 셀에 채우는 방법과 같은 몇 가지 유용한 기술을 보여줍니다. 매크로가하지 않는 것은 합계 할 가변 수의 셀을 선택하는 방법을 보여주는 것입니다. 이렇게하려면 Range 개체의 End 메서드를 사용하는 것이 가장 좋습니다. 다음 코드 줄은 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 사용].