Копирование формулы в следующую строку при вставке новой строки
У меня есть строка, в которой есть формулы, использующие значения той же строки.
Следующая строка пуста, только с другим цветом фона.
Теперь, если я вставляю новую строку (щелкнув правой кнопкой мыши на пустую строку и "вставить" ), я получаю новую строку без цвета фона (это то, что я хочу), но строка также НЕ содержит любые формулы: как мне заставить Excel умереть и копировать формулы из предыдущей строки при создании новой строки?
Еще одна часть информации: информация о проверке данных (т.е. раскрывающийся список) копируется при вставке новой строки.
Спасибо.
Ответы
Ответ 1
Сделайте область с вашими данными и формулами Таблица:
![enter image description here]()
Затем добавление новой информации в следующую строку скопирует все формулы в этой таблице для новой строки. Валидация данных также будет применяться для новой строки, как и для всего столбца. Это действительно Excel умнее с вашими данными.
НЕТ VBA требуется...
Ответ 2
Еще одна ключевая вещь, которую я нашел относительно копирования строк в таблице, заключается в том, что рабочий лист, над которым вы работаете, должен быть активирован.
Если у вас есть книга с несколькими листами, вам нужно сохранить лист, на который вы вызвали макрос, а затем активировать лист со столом.
Когда вы закончите, вы можете повторно активировать оригинальный лист.
Вы можете использовать Application.ScreenUpdating = False, чтобы убедиться, что пользователь не видит, что вы меняете листы в своем макросе.
Если у вас нет рабочего листа, копия не работает должным образом, т.е. некоторые вещи, похоже, работают, а другие вещи не являются?
Ответ 3
Вам нужно вставить новую строку, а затем скопировать из исходной строки во вновь вставленную строку. Excel позволяет вставлять специальные формулы. Итак, в Excel:
- Вставьте новую строку
- Скопировать исходную строку
- Выберите вновь созданную целевую строку, щелкните правой кнопкой мыши и вставьте специальные
- Вставить в формулу
VBA, если требуется, с строками ( "1:1" ), являющимися исходными, и строками ( "2: 2" ) являются цель:
Rows("2:2").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Rows("2:2").Clear
Rows("1:1").Copy
Rows("2:2").PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone
Ответ 4
Если у вас есть рабочий лист со многими строками, в котором все содержат формулу, самым простым способом является копирование строки без данных (но она содержит формулы), а затем "вставить скопированные ячейки" ниже/выше где вы хотите добавить. Формулы остаются. В крайнем случае, можно использовать строку с данными. Просто очистите его или перезапишите после вставки.