# How to Sum Ranges Using Visual Basic for Applications

Article translations
Close
• Microsoft Excel for Windows 95 7.0|7.0
• Microsoft Excel for Windows 95 7.0a|7.0a
• Microsoft Excel for Windows 5.0|5.0
• Microsoft Excel for Windows 5.0c|5.0c
• Microsoft Excel for the Macintosh 5.0|5.0
• Microsoft Excel for the Macintosh 5.0a|5.0a
Expand all | Collapse all

## SUMMARY

In Microsoft Excel, you can use a Microsoft Visual Basic for Applications macro to sum or subtract two ranges of data and to then place the result into a third range without using formulas in the cells. You can do this in the same workbook or from more than one workbook into a workbook using defined names.

Microsoft provides programming examples for illustration only, without warranty either expressed or implied. This includes, but is not limited to, the implied warranties of merchantability or fitness for a particular purpose. This article assumes that you are familiar with the programming language that is being demonstrated and with the tools that are used to create and to debug procedures. Microsoft support engineers can help explain the functionality of a particular procedure, but they will not modify these examples to provide added functionality or construct procedures to meet your specific requirements. There are several ways to perform the task of adding or subtracting columns of data together. You can use a For Each...Next loop in the same workbook to subtract values in one column from another column and have the results appear in a third column. For an example of how to do this using Visual Basic code, perform the following steps in Microsoft Excel:

1. Open a new worksheet, and in A1:A10, enter some random numbers.
2. In B1:B10, enter some random numbers.
3. In a Visual Basic module, type the following:
``` Sub MyTotal() Dim CurCell As Object For Each CurCell In Range("C1:C10") CurCell.Value = CurCell.Offset(0, -2).Value _ - CurCell.Offset(0, -1).Value Next End Sub ```
4. Run the macro.
The results of the subtraction appear in C1:C10.

You can use the same code to add the columns. To do this, just change the minus sign to a plus sign in the CurCell.Value line, as follows:
``` CurCell.Value = CurCell.Offset(0, -2).Value _ + CurCell.Offset(0, -1).Value ```
To add or subtract from different workbooks using Visual Basic code, use the following steps:

1. Open a workbook (Book1), and in range A1:A10, insert random numbers.
2. In range A1:A10 of a second workbook (Book2), insert random numbers.
3. On a Visual Basic module sheet, type the following:
``` Sub TotalData() Dim File1 As Object, File2 As Object, CurCell As Object ' Where the first column of data is located in Book1 on Sheet1 ' in range A1:A10. Set File1 = Workbooks("Book1").Sheets("Sheet1").Range("A1:A10") ' We are now dealing with the second column of data. Set File2 = Workbooks("Book2").Sheets("Sheet1").Range("A1:A10") For Each CurCell In Range("A1:A10") ' To add instead of subtract, change the minus sign ' to a plus sign. CurCell.Value = File1.Cells(CurCell.Row, 1).Value - _ File2.Cells(CurCell.Row, 1).Value Next End Sub ```
4. Run the macro.

## Properties

Article ID: 148317 - Last Review: October 11, 2006 - Revision: 2.3
##### APPLIES TO
• Microsoft Excel 97 Standard Edition
• Microsoft Excel 98 for Macintosh
• Microsoft Excel 95 Standard Edition
• Microsoft Excel 95a
• Microsoft Excel 5.0 Standard Edition
• Microsoft Excel 5.0c
• Microsoft Excel 5.0 for Macintosh
• Microsoft Excel 5.0a for Macintosh
##### Keywords:
kbdtacode kbhowto kbprogramming KB148317
Retired KB Content Disclaimer