Excel добавляет несколько строк

Есть ли быстрый способ сделать это?

Например, у меня две строки

AB

34 5
56 6
34 3
25 2

Я хочу сделать следующий расчет по строкам.

A1 = A1 + B1
A2 = A2 + B2
A3 = A3 + B3 ..
..

Теперь я могу сделать это с помощью макроса, который петли, хотя строки, подобные

for x = 1 to 500 sheet1.cells(x,1).vlaue = sheet1.cells(x,1).vlaue + sheet1.cells(x,2).vlaue next x 

но там есть более эффективный способ, используя диапазоны или что-то, где это может быть выполнено как один шаг?

ура

Быстрый способ – войти в ближайшее окно:

 [a1:a500]=[a1:a500+b1:b500] 

Квадратные скобки являются ярлыком для функции Evaluate

Я могу представить два варианта:

Опция 1

Использовать Copy , Paste Special , Add

 Sub AddStep() Dim rng1 As Range, rng2 As Range Set rng1 = Range([A1], [A1].End(xlDown)) Set rng2 = rng1.Offset(, 1) rng2.Copy rng1.PasteSpecial xlPasteValues, xlPasteSpecialOperationAdd Application.CutCopyMode = False End Sub 

Вариант 2

Перебираем массив вариантов. Это намного быстрее, чем цикл по диапазону

 Sub AddStep() Dim rng As Range Dim dat As Variant Dim i As Long Set rng = Range([B1], [A1].End(xlDown)) dat = rng For i = LBound(dat, 1) To UBound(dat, 1) dat(i, 1) = dat(i, 1) + dat(i, 2) Next rng = dat End Sub 

Вариант 1 выполняется быстрее, но в некоторых случаях лучше избегать буфера обмена.
Протестировано на выборке из 1 000 000 строк:
Вариант 1 – 435 мс
Вариант 2 – 2589 мс

То, как я это сделаю, это создать формулу для первой строки, а затем просто выбрать все строки после и нажать Ctrl+D Разве это не то, что вам нужно? Если я не понял этот вопрос.

  • VBA для копирования определенных строк в Excel из данной книги в новую книгу, если определенное значение найдено в данном столбце
  • excel искать строку в таблице и возвращать строку, если true
  • Как выбрать диапазон ячеек в зависимости от количества строк в листе?
  • iLastRow работает неправильно
  • Excel: выделите строку и столбец заданными числами
  • Какую формулу я могу использовать для вставки x числа строк, где x - разница между двумя ответами на текстовые поля?
  • как проверить, является ли FirstName пустым, а затем заполнить его из полного имени в файле excel?
  • Сохраните отдельные листы как CSV и удалите строки с определенным текстом в качестве значения
  • Сортировка строк Apache-POI в excel
  • Удалить последовательные ROWs EXCEL VBA
  • как сделать двойную пасту в каждой строке на excel?
  • Давайте будем гением компьютера.