IT Справочник
1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд

Split vba excel примеры

Excel VBA Split Function – Explained with Examples

When working with VBA in Excel, you may have a need to split a string into different parts based on a delimiter.

For example, if you have an address, you can use the VBA Split function to get different parts of the address that are separated by a comma (which would be the delimiter in this case).

SPLIT is an inbuilt string function in Excel VBA that you can use to split a text string based on the delimiter.

This Tutorial Covers:

Excel VBA SPLIT Function – Syntax

  • Expression: This is the string that you want to split based on the delimiter. For example, in case of the address example, the entire address would be the ‘expression’. In case this is a zero-length string (“”) SPLIT function would return an empty array.
  • Delimiter: This is an optional argument. This is the delimiter that is used to split the ‘Expression’ argument. In case of our address example, a comma is a delimiter that is used to split the address into different parts. If you don’t specify this argument, a space character is considered the default delimiter. In case you give a zero-length string (“”), the entire ‘Expression’ string is returned by the function.
  • Limit: This is an optional argument. Here you specify the total number of substrings that you want to return. For example, if you only want to return the first three substrings from the ‘Expression’ argument, this would be 3. If you don’t specify this argument, the default is -1, which returns all the substrings.
  • Compare: This is an optional argument. Here you specify the type of comparison you want the SPLIT function to perform when evaluating the substrings. The following options are available:
    • When Compare is 0: This is a Binary comparison. This means that if your delimiter is a text string (let’s say ABC), then this would be case-sensitive. ‘ABC’ would not be equal to ‘abc’.
    • When Compare is 1: This is a Text comparison. This means that if your delimiter is a text string (let’s say ABC), then even if you have ‘abc’ in the ‘Expression’ string, it would be considered as a delimiter.

Now that we have covered the basics of the SPLIT function, let’s see a few practical examples.

Example 1 – Split the Words in a Sentence

Suppose I have the text – “The Quick Brown Fox Jumps Over The Lazy Dog”.

I can use the SPLIT function to get each word of this sentence into as a separate item in an array.

The below code would to this:

While the code does nothing useful, it will help you understand what the Split function in VBA does.

Split function splits the text string and assigns each word to the Result array.

So in this case:

  • Result(0) stores the value “The”
  • Result(1) stores the value “Quick”
  • Result(2) stores the value “Brown” and so on.

In this example, we have only specified the first argument – which is the text to be split. Since no delimiter has been specified, it takes space character as the default delimiter.

Important Note:

  1. VBA SPLIT function returns an array that starts from base 0.
  2. When the result of the SPLIT function is assigned to an array, that array must be declared as a String data type. If you declare it as a Variant data type, it will show a type mismatch error). In the example above, note that I have declared Result() as a String data type.

Example 2 – Count the Number of Words in a Sentence

You can use the SPLIT function to get the total number of words in a sentence. The trick here is to count the number of elements in the array that you get when you split the text.

The below code would show a message box with the word count:

In this case, the UBound function tells us the upper bound of the array (i.e., the maximum number of elements the array has). Since the base of the array is 0, 1 is added to get the total word count.

You can use a similar code to create a custom function in VBA that will take the text as input and return the word count.

The below code will create this function:

Once created, you can use the WordCount function just like any other regular function.

This function also handles leading, trailing and double spaces in between words. This has been made possible by using the TRIM function in the VBA code.

In case you want to learn more about how this formula works to count the number of words in a sentence or want to learn about a non-VBA formula way to get the word count, check out this tutorial.

Example 3 – Using a Delimiter Other than Space Character

In the previous two examples, we have only used one argument in the SPLIT function, and the rest were the default arguments.

When you use some other delimiter, you need to specify that in the SPLIT formula.

In the below code, the SPLIT function returns an array based on a comma as the delimiter, and then shows a message with each word in a separate line.

In the above code, I have used the For Next loop to go through each element of the ‘Result’ array assign it to the ‘DisplayText’ variable.

Example 4 – Divide an Address into three parts

With the SPLIT function, you can specify how many numbers of splits you want to get. For example, if I don’t specify anything, every instance of the delimiter would be used to split the string.

But if I specify 3 as the limit, then the string will be split into three parts only.

For example, if I have the following address:

I can use the Split function in VBA to divide this address into three parts.

It splits the first two based on the comma delimiter and remaining part becomes the third element of the array.

The below code would show the address in three different lines in a message box:

One of the practical uses of this could be when you want to divide a single line address into the format shown in the message box. Then you can create a custom function that returns the address divided into three parts (with each part in a new line).

The following code would do this:

Once you have this code in the module, you can use the function (ThreePartAddress) in the workbook just like any other Excel function.

This function takes one argument – the cell reference that has the address.

Note that for the resulting address to appear in three different lines, you need to apply the wrap text format to the cells (it’s in the Home tab in the Alignment group). If the ‘Wrap Text’ format is not enabled, you’ll see the entire address as one single line.

Example 5 – Get the City Name from the Address

With Split function in VBA, you can specify what part of the resulting array you want to use.

For example, suppose I am splitting the following address based on the comma as the delimiter:

The resulting array would look something as shown below:

Since this is an array, I can choose to display or return a specific part of this array.

Below is a code for a custom function, where you can specify a number and it will return that element from the array. For example, if I want the state name, I can specify 3 (as it’s the third element in the array).

The above function takes two arguments, the cell reference that has the address and the element number you want to return. The Split function splits the address elements and assigns it to the Result variable.

Then it returns the element number that you specified as the second argument. Note that since the base is 0, ElementNumber-1 is used to return the correct part of the address.

Читать еще:  Найти подстроку в excel vba

In case you want the city name, you can use 2 as the second argument. In case you use a number that is higher than the total number of elements, it would return the #VALUE! error.

You can further simplify the code as shown below:

In the above code, instead of using the Result variable, it only returns the specified element number.

So if you have Split(“Good Morning”)(0), it would only return the first element, which is “Good”.

Similarly, in the above code, it only returns the specified element number.

You May Also Like the Following Excel Tutorials:

VBA Split

VBA Split Function

As the name suggests Split is a function which splits strings into different parts. We have many such functions in excel worksheets such as left right and mid function to do so. But when we need any string to differentiate in parts we use a Split function in VBA. It is one of the best function in VBA to perform different types of operations on strings.

The split function is basically a substring function which takes a string as an input and gives another string as an output. The only difference between the other substring function like left right and mid and split function is that the LEFT, RIGHT & MID function just take one string as an input or argument and returns one string as an output while SPLIT function returns an array of strings as output.

Valuation, Hadoop, Excel, Mobile Apps, Web Development & many more

Formula for Split Function in Excel VBA

VBA Split function has the following syntax:

Let me explain the arguments for the VBA split function first:

  • Expression As String: This is a mandatory argument in VBA Split function. Expression as string refers to the string we want to break into parts.
  • Delimiter: This is an optional argument. It is the character which is used to break strings into parts. But if we do not provide any delimiter VBA treats space “ “ as default delimiter.
  • Limit: This is also an optional argument. Limit means the maximum number of parts we want to do of a string. But again if we do not provide a limit to the function VBA treats it as default -1 which means the string will break apart each time there is a delimiter in the string.
  • Compare: This final argument is also an optional argument. Compare is a method which is described as one of the two below:
  1. Either it is 0 which means Split will perform a binary comparison which means every character should match itself.
  2. Or it can be 1 which means the Split function will do a textual comparison.

Everything will be clear in a few examples. But let me give a very basic example first what this function does. Suppose we have an input string as ANAND IS A GOOD BOY. The split string will break it in parts each word separately. We can also use the Split function to count a number of words in a string or we can use it to output only a certain amount of words in a given string.

How to Use Excel VBA Split Function?

We will learn how to use a VBA Split Excel function with few examples.

VBA Split Function – Example #1

How about we use the above string ANAND IS A GOOD BOY with split function.

Step 1: Go to the Developer tab click on Visual Basic.

Step 2: A project window appears to click on Sheet 1 to open the code window.

Step 3: When the code window appears, declare a sub-function to start writing the code.


Step 4: Declare two variables arrays and one as strings A & B.


Step 5: Store the value of the string in A.


Step 6: In B array store the value of A using the split function as shown below.


Step 7: Use For Loop to break every string.


Step 8: Display it using the Msgbox function.


Step 9: Run the code from the run button provided below.

We get this as output once we run the above code.

VBA Split Function – Example #2

We will now try to take input from a user and split the string into parts.

Step 1: Go to the developer’s tab and click on Visual Basic to open the VB Editor.

Step 2: Click on Sheet 2 from the properties window to open the code window.

Step 3: In the code window declare a sub-function to start writing the code.


Step 4: Declare two variables one as String and one as an Array String.


Step 5: Take the value from the user and store it in the A using Inputbox function.


Step 6: Store the value of A in Array B using the Split Function.


Step 7: Use For Loop to break every string.


Step 8: Display it using the Msgbox function.


Step 9: Run the code from the run button. Once we run the code we get an input message to write a string. Write “I AM A GOOD BOY” as input in the input box and press ok to see the result.

VBA Split Function – Example #3

We can also use the VBA Split Function to count the number of words in the string. Let us take input from the user and count the number of words in it.

Step 1: Go to the developer’s tab and click on Visual Basic to open VB Editor.

Step 2: Click on Sheet 3 in the project window to open the code window.

Step 3: Once the code window is open declare a sub-function to start writing the code.


Step 4: Declare two variables one as a string and one as an array string.


Step 5: Take input from the user and store in A using the input box function.


Step 6: Use the Split function and store it in B.


Step 7: Use a Msgbox function to display the total number of words.


Step 8: Run the code from the run button provided. Once we have run the code it asks for an input for the string. Write “INDIA IS MY COUNTRY” in the box and press ok to see the result.

Explanation of Excel VBA Split Function

Now we know that split function in VBA is a substring function which is used to split strings into different parts. The input we take is as a string while the output displayed is an array.

It is very similar to the other worksheet function but it is superior as it can break multiple words and return them as an array.

Things to Remember

There are a few things we need to remember about VBA split function:

  • The VBA split function is a substring function.
  • It returns output as a string.
  • Only the expression is the mandatory argument while the rest of the arguments are optional.

Recommended Articles

This has been a guide to VBA Split Function. Here we discussed how to use Excel VBA Split Function along with practical examples and downloadable excel template. You can also go through our other suggested articles –

All in One Software Development Bundle (600+ Courses, 50+ projects)

The Excel VBA Split Function

In a previous section on strings, we mentioned that there is an inbuilt function called Split. We said that this comes in handy if you want to split a name that has more than two part. Our previous code only worked for people who had one first name and a surname. But what if the name you come across in cell A1 is something like David Lloyd George? Well, that’s where the Split function can help.

Читать еще:  Excel merge cells

The Split function looks like this:

Between the round brackets of Split you need two things. The first is the string you want to break up into separate pieces. After a comma, you then need something called the separator. This is whatever character is between each piece of text you want to split. It could be a blank space, a comma, a dash, just about anything.

(NOTE: there are also two optional parameters you can add to Split, a limit and a compare method. The limit is an integer and is used to restrict the number of pieces that Split produces. The compare methods are CompareMethod.Binary and CompareMethod.Text.)

As an example of Split, enter the name David Lloyd George into cell A1 on your spreadshet. Now try out the following code:

The first two lines set up a String and an Integer variable, txt and i. The third line sets up a variable of type Variant. A Variant type is needed if you’re going to be using Split. Any other variable type won’t work.

The fourth line just gets the value of the ActiveCell on the spreadsheet and places its contents into the txt variable. Next comes the Split line:

To the left of the equal sign we have our FullName Variant variable. The pieces of the string will be split and stored here, turning FullName into an array.

To the right of the equal sign we have the Split function:

The first item between the round brackets of Split is the text we want to split. The text for us is held in the variable called txt. But you don’t have to store your text in variable. You could just have direct text surrounded by double quotes:

Split(«David Lloyd George», » «)

The second item between the round brackets of Split is the separator. We want to separate each part of the string wherever spaces are found. We’ve typed two double quotes. Between the double quotes, we tapped the space bar on the keyboard once. The Split function will then search for 1 space between each word of the text, and break it into chunks where this space is found. Each chunk will be one item in the array.

To get at each piece of the new FullName array, we have a For loop:

For i = 0 To UBound(FullName)

The loop goes from 0 (the first position in the array) to the highest position in the array. We get this highest position by using UBound.

As the code for the loop, we have this:

Cells(1, i + 1).Value = FullName(i)

Here, we’re using Cells to access the first Row, which is the hard-coded 1. To move across the columns we have i + 1. To the right of the equal sign we have our new array, FullName. To get at each position in the array we have a pair of round brackets after the array name. Between the round brackets we have the loop variable, i. This will move us through the array, as i increases by 1 each time round.

When you enter a name into cell A1 of your spreadsheet, it will look something like this:

Return to the VBA editor and run your code. Your spreadsheet should change to this:

So we’ve taken a name from one cell and split it over three cells.

Delete the names in all the cells of your spreadsheet. Now enter an even longer name, something like «John Allen Joe Jones». Run your code again and you’ll find that all four parts end up in different cells.

The Join Function

You can put the pieces of an array back together again with the Join function. If you want, you can have the same separator as before, but you can also have a new one. In the code below, we first have a name separated by spaces. We then use Join to put the name back together again, but this time separated by hyphens.

Dim txt As String
Dim FullNameSpaces As Variant
Dim FullNameHyphens As Variant

txt = «David LLoyd George»

The Join line is this:

In between the round brackets of Join, you first need the name of the array you’re puting back together as one piece of text. After a comma, you type the new separator, surrounded by double quotes.

In the next section of this Excel VBA course, we’re going to take a closer look at Subs and Function.

Home and Learn Books

All course material copyright:
Ken Carney, Home and Learn

Split vba excel примеры

Массивы очень упрощают процесс программирования. Без них практически невозможно написать универсальную программу. Например, представьте себе, что вы манипулируете информацией о квартирах жилого дома. Вы объявляете переменные K1 — для первой квартиры, K2 — для второй и так далее. K1=54 будет означать, что площадь первой квартиры 54 кв.м., К2=72 и т.д. Теперь представим, что нам надо подсчитать общую площадь всех квартир в доме. Очевидно, что это что-то типа Total_S = K1+K2+. +Kn. В одном доме у нас 36 квартир, а в другом 144. Представляете бредовость процесса подобного программирования? Если в первом случае я должен буду использовать 36 отдельных переменных для вычисления общей площади, то для второго дома уже 144. Очень быстро вы придёте к мысли, что вам нужна переменная, состоящая из нумерованных ячеек. Тогда обретают смысл все те операторы циклов, входящие в состав любого языка программирования. Но об этом чуть позже.

Что такое массив

Массив — переменная, состоящая из некоторого количества однотипных элементов. У массива, как и у любой другой переменной, есть имя. А доступ к конкретному элементу массива осуществляется через указание в скобках после имени его индекса. Например, A(5) означает, что я обращаюсь к элементу с индексом 5 массива, имеющего имя A.

Типы массивов

Массивы в VBA и во многих других языках программирования делятся на 2 класса:

Фиксированные массивы . Такие массивы состоят из заранее известного количества элементов. Это количество определяется во время объявления массива и уже не может быть изменено в процессе его жизненного цикла. Вы, конечно же, сможете использовать меньшее количество элементов, но не существует способа увеличить количество элементов сверх объявленного.

Динамические массивы . Эти массивы можно «переобъявлять» в процессе жизненного цикла. То есть мы можем управлять количеством элементов динамических масивов в зависимости от наших потребностей. Это очень удобно, так как в подавляющем большинстве случаев программист не может заранее знать, с каким объёмом данных он столкнётся. Если вы собираетесь писать более-менее универсальные программы, то этот тип массивов определенно стоит изучить.

Объявление массивов

Объявление фиксированных массивов

Рекомендация : при объявлении массивов VBA я советую вам давать всем именам префикс » arr «. Я сторонник венгерской нотации.

Как мы видим, тут объявлено 2 одномерных массива arrTemp и arrTest . Одномерные массивы в программировании также часто называют векторами . Типом элементов первого массива является Long , второго массива — String . В этом типе синтаксиса в скобках указан максимальный индекс ( верхняя граница ) элемента массива. А что насчёт минимального индекса ( нижней границы ) массива? По-умолчанию минимальным индексом является ноль. В данном случае стандартное поведение интерпретатора языка VBA можно изменить при помощи оператора option base <0|1>. Option base 1 заставляет VBA считать нижней границей массива — единицу, а не ноль.

Таким образом, по-умолчанию массив arrTemp имеет 11 элементов — от 0 до 10. Но, если в начало модуля, в котором этот массив объявляется, вставить оператор Option Base 1 , то массив arrTemp будет иметь 10 элементов — от 1 до 10.

Помимо вышеуказанного вы вправе использовать следующий синтаксис, который НЕ зависит от option base <0|1>:

таким образом вы в явном виде указываете и нижнюю, и верхнюю границы. Как видите, нижняя граница совершенно не обязательно должна начинаться с 0 или 1. Более того, индексы границ могут принимать и отрицательные значения, главное чтобы нижняя была меньше верхней.

Читать еще:  Excel vba замена символа в строке

Помимо одномерных массивов, можно объявлять и массивы с размерностью больше единицы.

arrMulti — двумерный массив, а arrData3 — трёхмерный. Первый содержит 11*31=341 элемент, второй — 2*3*10=60 элементов. Теоретически допускается объявлять до 60 размерностей массива.

Какие типы данных могут стать элементами массива? Тут всё, как в шутке про фамилию еврея, — абсолютно любой тип данных годится на роль элемента массива, включая объектные типы, User Data Type , другие массивы (через тип Variant ). Если вы не указываете при объявлении тип данных массива, то предполагается, что этим типом является тип Variant .

Объявление динамических массивов

Динамические массивы объявляться так:

Однако, использовать их после такого объявления пока ещё нельзя. Необходимо выделить память под массив. Особенность работы с динамическим массивом как раз состоит в том, что программист отвечает за его своевременное расширение (усечение) в памяти. Для этого существует специальный оператор, который имеет следующий синтаксис:

ReDim [Preserve] varname(subscripts) [As Type]

После этого оператора, вы можете использовать элементы массива arrOpen с 0-го по 5-й. Всё, что мы говорили про оператор option base и нижнюю границу, верно и для динамических массивов. Предположим, что вы сохранили информацию в элементах 0-5 и у вас поспела новая порция информации для элементов 6-11. Чтобы разместить в данном массиве новые элементы и не потерять старые, вы должны сделать следующее:

то есть мы тут увеличиваем верхнюю границу массива и используем ключевое слово Preserve , чтобы во время этой операции не потерять текущее содержимое arrOpen , так как в противном случае (без слова Preserve ) массив будет расширен, а память заполнена нулями. Вы также вправе вообще не декларировать массив оператором Dim , а сделать это впервые через ReDim и там же указать лип элементов. Но, если вы в первом ReDim (или Dim ) указали определенный тип элементов, то в последующих операторах ReDim этот тип переопределён быть не может — возникнет ошибка на этапе компиляции проекта.

Изменение элементов массива

Пора бы нам уже научиться пользоваться нашими массивами — то есть записывать информацию в их элементы и считывать её оттуда. Это довольно просто:

Как и с обычными переменными запись информации в элемент массива происходит через оператор присваивания (=), но указанием индекса элемента массива.

Чтение элементов массива

Определение границ массива

В подпрограммах часто приходится иметь дело с массивами, которые переданы вам в качестве параметра (как это сделать показано ниже), поэтому в этом случае очень актуален вопрос определения нижней и верхней границ индекса массива. Для этого в языке предусмотрены 2 функции: LBound и UBound . Первая возвращает нижнюю границу индекса, вторая — верхнюю.

LBound( array [, dimension])

UBound( array [, dimension])

Для одномерных массивов параметр dimension можно не указывать. Для многомерных массивов его указывать необходимо. Кстати, это означает, что, если вы точно не знаете, с каким массивом имеете дело, но необходимо узнать его первую размерность, то лучше использовать вариант UBound(arrTemp,1) , а не UBound(arrTemp) , так как последний вариант вызовет ошибку, если массив окажется многомерным.

Если вы ошибётесь с указанием правильного индекса массива, то возникнет ошибка периода исполнения с кодом 9. Эта же ошибка возникнет, если вы в функции LBound / UBound укажете несуществующую размерность массива (например, 3 для двумерного массива).

Перебор элементов массива

Собственно массивы нужны для того, чтобы хранить в них однотипную информацию и перебирать их в цикле. Как правило, алгоритм делает что-то полезное с одним элементом массива, а цикл повторяет эти типовые действия для всех элементов массива.

Наиболее удобный оператор цикла для перебора элементов массива — это безусловно For . Next .

так же есть способ не заботиться об определении нижней и верхней границ, если алгоритм не требует от нас знания текущего индекса массива:

Вы, конечно, можете перебирать массив и в других типах циклов Do . Loop , но, право, смысла и удобства в этом не много. По крайней мере я не сталкивался, кажется, с ситуациями, когда для перебора массива цикл For не подошёл.

Передача массивов в подпрограммы

Массивы удобнее всего передавать в подпрограммы в виде параметра типа Variant .

Обратите внимание, что функции GetResult в качестве параметра передаются массивы. При чём, в первом случае это массив с типом элементов Long , а во втором — String . За счёт того, что внутри функции используются переменные типа Variant , то сначала функция нам возвращает сумму элементов массива arrIntegers , а во втором результат сложения (конкатенации) строк массива arrStrings . Кроме того, параметр parArray не описан как массив ( parArray As Variant ), но мы внутри функции GetResult ведём себя с ним, как с массивом ( For Each Element In parArray )! Это возможно, так как переменные типа Variant умеют определять, что им присваивается и вести себя далее в соответствии с тем, что они содержат. Если переменной parArray присвоили массив (через вызов функции — строки 17 и 18), то она себя будет вести как массив.

Массив с элементами типа массив

Продемонстрируем, как можно хранить в качестве элементов массива другие массивы.

Результат отладочной печати:

Функция Array

Данная функция полезна для создания справочных массивов. Она возвращает переменную типа Variant , содержащую одномерный массив с типом элементов Variant .

Array( arglist )

Вызов функции без параметров приведёт к возврату массива нулевой длинны. При этом будет наблюдаться интересный эффект LBound вернёт вам 0, а UBound вернёт -1, то есть верхняя граница окажется меньше нижней границы.

Функция Split

Split возвращает одномерный массив, содержащий подстроки, из строкового выражении с учётом указанного разделителя

Split(expression[, delimiter[, limit[, compare]]])

expression — строковое выражение, содержащая подстроки и разделители. Обязательный параметр.

delimiter — текстовый разделитель. Необязательный параметр. Если опущен, то предполагается, что разделителем является символ пробела.

limit — количество подстрок, которое необходимо вернуть. -1 или отсутствие параметра означает, что вернуть надо все подстроки.

compare — константа, указывающая тип сравнения для символов разделителей. 1 — текстовое сравнение (без учёта регистра), 0 — бинарное сравнение (с учётом регистра).

Результат выглядит так:

Если вы в качестве разделителя укажете пустую строку, то на выходе получите массив, состоящий из одного элемента. Кстати, split всегда возвращает массив с нулевой нижней границей вне всякой зависимости от наличия option base 1 .

Нюансы работы с динамическими массивами

Неинициализированный массив

У динамического массива есть такое промежуточное состояние, когда он уже объявлен, но ещё не содержит никаких элементов.

То есть у переменной динамического массива есть такое состояние, когда мы не можем воспользоваться вспомогательными функциями LBound / UBound для определения его (массива) статуса. Это особенно надо учитывать, когда вы пишите подпрограммы, работающие с массивами. Прежде чем работать (перебирать) массив необходимо убедиться, что он проинициализирован, в противном случае программа вылетит с ошибкой 9.

Для этого я предлагаю пользоваться функцией подобной нижеописанной IsNotEmptyArray :

Расширение массива

Как правило, расширять динамический массив приходится в цикле. Возможны 2 стратегии: расширение на 1 элемент, как только в этом есть необходимость (назовём это эластичным расширением), и расширение авансом, когда вы увеличиваете верхнюю границу скачками, скажем сразу на 100 элементов. Реализовав оба варианта, я для себя сделал вывод, что авансовое расширение получилось и компактнее, и работает быстрее, так как операция расширения, вообще говоря, затратна и, чем реже вызывается, тем лучше.

Авансовый метод вышел даже компактнее

Удаление массива

Существует оператор Erase , который полностью освобождает память из-под динамического массива. Будучи вызванным для статического массива он его обнуляет, а если он строковый, то элементам присваивается пустые строки.

Получение массива на основе диапазона Excel

Самый эффективный по скорости способ получить содержимое диапазона Excel для манипулирования в VBA — это скопировать его в массив с элементами Variant. Делается так:

Даже, если вы передаёте в массив столбец или строку, получаемый массив всегда будет иметь 2 измерения. Измерение 1 отвечает за строки, измерение 2 — за столбцы. То есть ячейка C5 будет в элементе arrTemp(5,3) . Нижняя граница таких массивов всегда будет начинаться с единицы.

Дополнительные источники

В качестве источника дополнительной информации по массивам я могу порекомендовать замечательный, исчерпывающий ресурс Чарльза Пирсона (Charles H. Pearson). Его сайт следует штудировать всем, кто серьёзно осваивает VBA. Конкретно по массивам там огромное количество готовых подпрограмм для работы с ними, исходные коды, снабженные подробнейшими комментариями, продвинутые объяснения для копающих в глубину. Без преувеличения великолепный ресурс!

Ссылка на основную публикацию