Работа с двумерни масиви

Безплатни 20 урока
регистрирай се и научи

Ако сте вече потребител - Регистриран съм
Видео

Тест за преминаване към следващия урок

 
Функция Array е функция на:
VBA
MS Excel
на VBA и MS Excel
 
Изберете правилната декларация на двумерен масив
test1(3,8)
test2(3 To 8)
 
Двумерният масив има:
две измерения
два елемента
 
Колко елемента има масива test(1 To 8,0 To 3) ?
32
24
27
36
 
В двумерния масив НЕ може да се сумира само една колона.
Твърдението НЕ е вярно
Твърдението е вярно
 
Каква е разликата в масивите test1(3,8) и test2(8,3) ?
Различават се по брой редове и колони
Различават се само по брой редове
Различават се само по брой колони

Въпроси и отговори

  • Защо дава грешка при използване на функция Index?

    Galya Savova:

    Когато включа в процедурата .Sum(.Index(array_results,0,2)) ми дава съобщение Compile error: Invalid or unqualified reference и не ми дава да продължа. Какво да променя?

    Димитринка Вълкова:

    Сигурно имате пред вид процедурата Sub Array_Sales_Results() от модул Step6, във файл m4v10.xlsm. Ако е променена таблицата, например добавени са нови редове и/или колони, сте променила референциите, откъдето се четат данните за масива и това е може да бъде причина за съобщението. Изпратете картинка с таблицата и инструкцията със съобщението за грешка. Това ще ми помогне да открия причината.

    Мария:

    kakvo e j?

    Димитринка Вълкова:

    Може ли да поясните въпроса си с повече думи? По всяка вероятност е променлива, декларирана в процедурата

  • Как работи индексът на масива при двумерните масиви

    Gergana Miteva:

    Индексът, с който брои масива при едномерните масиви реферира към редовете, а при двумерните реферира ли и към колоните, започвайки пак от нула по подразбиране?

    Димитринка Вълкова:

    Зависи как се използва масива. Например, имаме едномерен масив arr_1(5) с 6 елемента. Може да се попълват редове: For j=0 To 5 Cells(j+1,1)=arr(j) Next j Или колоните For j=0 To 5 Cells(1, j+1)=arr(j) Next j За двумерен масив arr_2(5,3) За редовете - най-напред ще се попълнят всички редове за първата колона, след това за втората, и т.н. For j=0 To 3 For i=0 To 5 Cells(i+1,j+1)=arr_2(j,i) Next i Next j Попълването може да се изпълни и по колони - най-напред ще се попълнят всички колони за първия ред, след това за втория и т.н.: For i = 0 To 5 For j= 0 To 3 Cells(i+1,j+1)= arr_2(j,i) Next j Next i

  • Как се разбира коя таблица да третира като масив?

    Gergana Miteva:

    Здравейте, благодаря за отговора. Имам още един въпрос. Къде в процедурата от урока се задава от коя таблица да налее информацията? Защо не взима таблицата с индексите, а първата? Никъде не задаваме рейнджа на масива, от който искаме да изтеглим информация?

    Димитринка Вълкова:

    Препоръчвам още веднъж да изгледате внимателно урока, сама ще намерите отговорите. Разбира се, ако имате още въпроси, пишете. Ще си позволя още един съвет. Моля не бързайте с напредването в уроците. Гледайте целия урок до края, ако се налага още веднъж, а след това повторете стъпките самостоятелно. Следвайки внимателно стъпките в урока, ще Ви бъде много полезюно! Разбира се, когато срещнете затруднения и имате въпроси, пишете!

  • Защо добавяме +1 при дефиниране на m и n в края на записа?

    Емилия Димитрова:

    Здравейте! Защо добавихте +1 в края на разликата между UBound и LBound ? Ако идеята е, че долната граница е 0, защо не изтрихме ''+1" след като променихме долната граница на 1ца?

    Димитринка Вълкова:

    Няма значение стойността на долната граница. Броят на елементите в масива винаги е разликата +1. Например, за масив array(3,4) LBound=3, a UBound=4. UBound - LBound = 4-3=1. За да намерим броя на елементите +1, т.е. array(3) и array(4); масивът има 2 елемента.

  • Защо добавяме +1 при дефиниране на m и n в края на записа?

    Емилия Димитрова:

    Здравейте! Защо добавихте +1 в края на разликата между UBound и LBound ? Ако идеята е, че долната граница е 0, защо не изтрихме ''+1" след като променихме долната граница на 1ца?