Приращение формулы excel на 1

Я пытаюсь скопировать и вставить несколько ячеек, сохраняя формат и их привязку к таблице.

В настоящее время у меня есть таблица, но я ссылаюсь на нее с другого листа, например:

=Sheet2!A1 =Sheet2!B1 =Sheet2!C1
=Sheet2!D1 =Sheet2!E1

Я пытаюсь скопировать его по 4 строки за раз и вставлять несколько раз, значения продолжают идти к текущему идентификатору ячейки, но я хочу увеличивать их на 1 каждый раз, например, когда я вставляю, я бы хотел, чтобы они были:

=Sheet2!A2 =Sheet2!B2 =Sheet2!C2
=Sheet2!D2 =Sheet2!E2

Есть ли более быстрый способ, чем вручную изменить все идентификаторы ячеек на +1?

Благодарю!

3 ответа

Выберите нужные ячейки и запустите в VBA следующее:

Public Sub TestMe()

 Dim myCell As Range

 For Each myCell In Selection
 If myCell.HasFormula Then myCell.Formula = myCell.Formula & "+1"
 Next myCell

End Sub

Если вы нажмете его слишком много раз, вот как удалить его последним +1:

Public Sub UnTestMe()

 Dim myCell As Range

 For Each myCell In Selection
 If myCell.HasFormula Then myCell.Formula = Left(myCell.Formula, _
 Len(myCell.Formula) - 2)
 Next myCell

End Sub

Что касается комментария @SJR, если вы хотите изменить ссылочный адрес ячейки, это одно из возможных способов обхода:

Public Sub TestMe()

 Dim myCell As Range

 For Each myCell In Selection
 If myCell.HasFormula Then myCell.Formula = Left(myCell.Formula, _
 Len(myCell.Formula) - 1) & 2
 Next myCell

End Sub

Просто измените значение &2 на номер, к которому вы хотите обратиться.


Математический трюк.

=INDIRECT("Sheet2!A"&INT(ROW()/4)-*offset*)

Сначала добавьте смещение, а затем вы можете скопировать и вставить его по своему усмотрению.

ROW() возвращает номер строки, в которой находится формула. Например, если введенная вами формула находится в ячейке A20, ROW() возвращает 20. ie, если вам нужно показать Sheet2!A1 в A20, смещение должно быть 4. Формула становится =INDIRECT("Sheet2!A"INT(ROW()/4)-4)


ThisWorkbook.Sheets("Your_Sheet_Name").Range("A99999").End(xlUp).Offset(1, 0)

Измените приведенный выше код. Для этого нужно выбрать ячейку A99999, а затем использовать команду Ctrl и стрелку вверх для выбора последней строки со значением и смещения на единицу, чтобы она фактически выбрала ячейку ниже этого. Затем вы можете вставить все, что хотите, в эту ячейку.

licensed under cc by-sa 3.0 with attribution.