# Writing a one dimensional vba array to the worksheet

Introduction Data transfer between worksheet cells and VBA variables is an expensive operation that should be kept to a minimum. You can considerably increase the performance of your Excel application by passing arrays of data to the worksheet, and vice versa, in a single operation rather than one cell at a time. If you need to do extensive calculations on data in VBA, you should transfer all the values from the worksheet to an array, do the calculations on the array, and then, possibly, write the array back to the worksheet. This keeps the number of times data is transferred between the worksheet and VBA to a minimum. An array that holds the sales total for each day of the month has one dimension the day of the month. An array that holds the sales total by department for each day of the month has two dimensions the department number and the day of the month. The number of dimensions an array has is called its rank.

Note You can use the Rank property to determine the how many dimensions an array has. Working with Dimensions You specify an element of an array by supplying an index or subscript for each of its dimensions. The elements are contiguous along each dimension from index 0 through the highest index for that dimension.

The following illustrations show the conceptual structure of arrays with different ranks. Each element in the illustrations shows the index values that access it. For example, you can access the first element of the second row of the two-dimensional array by specifying indexes 1, 0.

One-dimensional array Three-dimensional array One Dimension Many arrays have only one dimension, such as the number of people of each age. The only requirement to specify an element is the age for which that element holds the count. Therefore, such an array uses only one index.

The following example declares a variable to hold a one-dimensional array of age counts for ages 0 through Dim ageCounts As UInteger Two Dimensions Some arrays have two dimensions, such as the number of offices on each floor of each building on a campus. The specification of an element requires both the building number and the floor, and each element holds the count for that combination of building and floor.

Therefore, such an array uses two indexes. The following example declares a variable to hold a two-dimensional array of office counts, for buildings 0 through 40 and floors 0 through 5.

Dim officeCounts 40, 5 As Byte A two-dimensional array is also called a rectangular array. Three Dimensions A few arrays have three dimensions, such as values in three-dimensional space. Such an array uses three indexes, which in this case represent the x, y, and z coordinates of physical space. The following example declares a variable to hold a three-dimensional array of air temperatures at various points in a three-dimensional volume.

Dim airTemperatures 99, 99, 24 As Single More than Three Dimensions Although an array can have as many as 32 dimensions, it is rare to have more than three.In order to avoid this issue, when transferring information between a one dimensional Array and the two dimensional Excel spreadsheet, it is good practice to define all Arrays as two dimensional.

If we redefine the PrimaryColours as a two dimensional Array with one . Writing a particular column of a two-dimension array to a worksheet.

This allows me to write the one dimension array as a single column to the worksheet, leaving the rest of the worksheet unaffected: Assigning entire column of data to specific column of an array in VBA. 5. Writing A Two Dimensional VBA Array To The Worksheet If you have a 2 dimensional array, you need to use Resize to resize the destination range to the proper size.

## Writing To A Range Using VBA – Daily Dose of Excel

The first dimension is the number of rows and the second dimension is the number of columns. This allows me to write the one dimension array as a single column to the worksheet, leaving the rest of the worksheet unaffected: With regardbouddhiste.comeets(1)regardbouddhiste.com(1, 4),.Cells(UBound(firstArray, 1), 4)).Value = arrayToPaste End With.

I have a VBA function that creates a 2D array res. I'd like to write the array data to another worksheet, not the current worksheet the function is executed from.

I'd like to write the array data to another worksheet, not the current worksheet the function is executed from. The following table provides a quick reference to using arrays in VBA. The remainder of the post provides the most complete guide you will find on the VBA arrays.

Arrays And Ranges In VBA