Добавяне на сумарен ред под таблица

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

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

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

 
Възможно ли е да се комбинират режимите на запис (релативен и абсолютен) в записа на един макрос ?
Да
Не
 
За да променим характеристиките или за да изпълни действие, най-напред обектът трябва да се избере (Select)
Не, достатъчно е точно да се дефинира
Да, задължително трябва да се избере (Select), както в Excel

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

  • Как се въвежда ръчно формула във VBA

    Cvetelina Raykova:

    Здравейте,
    Не разбирам как се въвежда формула за сума във VBA ръчно и изобщо за формула, aко не използвам Macro Recorder. Какво значи "=sum (R2C:R(-1)C)".Какво е "R" и какво е "C"? Каво значат цифрите вътре във формулата?

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

    Здравейте Цветелина,
    В този урок показвам инструкциите, които записва Macro Recorder в релативен режим - Use Relative References. Инструкциите се записват с Macro Recorder. А в следващия урок показвам още един начин за адресиране в Excel, по-точно какво означава R1C1 :-)


    Cvetelina Raykova:

    Благодаря за отговора.

    Мария:

    Здравейте, Във връзка с изпълнението на макроси total и average: след като изпълня макроса за "total" и след това за "average" ми дава двоен average тъй като сумира два пъти тотала. По отделно процедурите се изпълняват коректно ако изпълня само едната или другата.Търсих си грешката но за сега не мога да я открия. Благодаря

    Мария:

    Видях отговора в урок 7,благодаря.

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

    Радвам се, че успяхте сама да откриете причината! Ако имате и други въпроси, не се колебайте и ми пишете.

  • Как мога да дефинирам адреса на active cell?

    Krasy.s:

    Здравейте, как мога да променям и дефинирам коя да е active cell, спрямо която се изпълняват другите инструкции?

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

    Здравей, обикновено се използва обект Range с характеристика Cell. Дефинирането на обекти е много важно условие във VBA. В следващия урок има пример, в който показвам как става. И тъй като обект Range e един от най-често използваните обекти във VBA в следващите уроци има много примери.

    Надявам се, че успях да отговоря, но ако има нещо неясно, пиши.

    Krasy.s:

    Благодаря! На 12 урок мисля, че вече го осъзнах донякъде :) С обект Range и действие.Selection. Прекрасен курс

    Пламен Калинов:

    Здравейте, при този запис: Range("B2").End(xlDown).Select ActiveCell.Offset(1, 0).Range("A1").Select ActiveCell.FormulaR1C1 = "=SUM(R[-29]C:R[-1]C)" ActiveCell.Select Selection.Copy ActiveCell.Offset(0, 2).Range("A1").Select ActiveSheet.Paste ActiveCell.Offset(0, -3).Range("A1").Select Application.CutCopyMode = False ActiveCell.FormulaR1C1 = "sum" ActiveCell.Select макроса се изпълнява коректно независимо къде е кликнато с мишката като клетка в таблицата. Докато при този ако е кликнато на различно място от последен ред втора колона резултата не е коректен: With ActiveCell .Offset(1, 0) = "=SUM(R2C:R[-1]C)" .Offset(1, 2) = "=SUM(R2C:R[-1]C)" .Offset(1, -1) = "Suma" End With Къде бъркам във вторият запис?

    Пламен Калинов:

    Ако се приложи: Range("B2").End(xlDown).Select ActiveCell.Offset(1, 0).Range("A1").Select With ActiveCell .Offset(0, 0) = "=SUM(R2C:R[-1]C)" .Offset(0, 2) = "=SUM(R2C:R[-1]C)" .Offset(0, -1) = "Suma" End With Вече всичко е наред независимо къде по работният лист е кликнато,

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

    Точно така, вярно сте намерил разликата в изпълнението: 1. Range("B2").End(xlDown).Select ActiveCell.Offset(1, 0).Range("A1").Select With ActiveCell .Offset(0, 0) и 2. With ActiveCell .Offset(1, 0) В първия случай Range("B2") - определя клетка B2 - началото на позиционирането, End(xlDown) - определя посоката и последната клетка, в която има някаква стойност. ActiveCell.Offset(1, 0) - определя клетката, в която се въвежда формулата, а това е първата празна клетка. Докато във втория случай формулата се въвежда в активната клетка и затова макросът не се изпълнява коректно.