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

Microsoft Excel Електронни таблици Microsoft 365 Excel VBA Програмиране VBA за Excel

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

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

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

Благодаря! На 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) - определя клетката, в която се въвежда формулата, а това е първата празна клетка. Докато във втория случай формулата се въвежда в активната клетка и затова макросът не се изпълнява коректно.

Може ли малко помощ? Имам колони със сбор, искам ако сбора под някоя колона е 0, колоната да се трие. Дотук какво съм направил: Dim c As Range For Each c In Selection If c.Value > 0 Then ActiveCell.Offset(0, 1).Range("A1").Select If c.Value = 0 Then c.EntireColumn.Delete Next c Не мога да измисля: как да го повтаря докато срещне празна клетка да укажа ако срещне празна клетка да се върни примерно на А1.

На две места във форума сте задали въпроса. Ето отговора:

https://aula.bg/question#id-144064000001

Ако не се отваря линка, вижте във форума моя отговор на въпроса Ви в темата Как да изтрием редовете, ако предварително не знаем колко са с формули?


Вашият отговор

Научи компютърните програми онлайн от топ експертите на България
Регистрацията в АУЛА ви дава:
  • 20 безплатни урока
  • Трикове и тънкости за софтуера
  • Отговори на вашите въпроси
  • Регистрация