Как да дефинираме обект Range - блок-оператор While

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

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

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

 
Изберете правилната инструкция за присвояване на стойност на обект Range
Range("B4") = total_sales
total_sales = Range("B4")
 
Блок-оператор While изпълнява повтарящи се действия (Loop)
Твърдението е вярно
Твърдението НЕ е вярно
 
Каква грешка е допусната в блок-оператор While?Sub Test_While()i=2While Not IsEmpty(Cells(i, 1))Cells(i, 1).Selecti= i + 1End Sub
липсва Wend
променливата [i] не е дефинирана
няма грешка

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

  • Кое е оптималното решение на домашната задача?

    Petko Ivanov Stoyanov:

    Здравейте, искам да ви представя моето частично решение на домашната задача, в която трябва да изчислим комисионната за всеки ред на последната колона и да сметнем общата сума: Sub Komisionna() i = 2 j = 4

    While IsEmpty(Cells(i, j))

    Cells(i, j) = Cells(i, j - 2) * Cells(i, j - 1) i = i + 1 Wend

    'Cells(i, j) = "=SUM(Cells(i-9,j):Cells(i-1,j)"

    End Sub

    Последният ред от макрото е в коментар, понеже не работи и "бъгва" едитора, но не мога да си обясня защо, съответно бих желал да науча алтернативен метод за използване само на клетки с елементи i, j. Допълнително бих се радвал да видя цели чужди решения на домашната задача, за да видя Вашия начин на мислене :) Благодаря предварително!

    Petko Ivanov Stoyanov:

    Видях отговора в следващото видео. Не съобразих, че ще бъде представен там, както и че трябва да се използват променливи за съхраняване. :)

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

    Здравей, решението, което предлагам е свързано с темата на урока. Разбира се, че могат да се намерят и други решения. Вярното решение е това, което дава коректен резултат. Грешката в кода, който си написал, е в дефинирането на обект Range за сумата. В предишните уроци показах макроси, които записват въвеждане на екселски функции - SUM, AVERAGE (виж урок 6 от модул 2). Или запиши макрос, в който въвеждаш функцията SUM, така веднага ще видиш грешката. Във VBA също се използват вградените екселски функции, но има различен синтаксис и ги разглеждам в следващите модули. Използването на променливи е много важно, за да се научи VBA. Надявам се, че успях да отговоря на въпроса ти.