Как дублировать строку в excel
Перейти к содержимому

Как дублировать строку в excel

  • автор:

Повторение определенных строк или столбцов на каждой печатной странице

Если лист охватывает несколько печатных страниц, можно пометить данные, добавив заголовки строк и столбцов, которые будут отображаться на каждой странице печати. Эти наклейки также называются заголовками печати.

Чтобы добавить заголовки печати на лист, выполните следующие действия:

    На листе, который требуется распечатать, на вкладке Макет страницы в группе Параметры страницы щелкните Печать заголовков.

Печать заголовков

Примечание: Команда Печать заголовков будет отображаться неактивной, если вы находитесь в режиме редактирования ячейки, если диаграмма выбрана на том же листе или если у вас не установлен принтер. Дополнительные сведения об установке принтера см. в статье Поиск и установка драйверов принтера для Windows Vista. Обратите внимание, что корпорация Майкрософт прекратила поддержку Windows XP. проверка веб-сайт изготовителя принтера для дальнейшей поддержки драйверов.

Вкладка «Лист» в диалоговом окне «Параметры страницы»

  • На вкладке Лист в разделе Печать заголовков выполните одно или оба из следующих действий:
    • В верхнем поле Строки для повтора введите ссылку на строки, содержащие метки столбцов.
    • В поле Столбцы для повтора слева введите ссылку на столбцы, содержащие метки строк. Например, чтобы напечатать метки столбцов в верхней части каждой страницы, введите в поле сквозные строки значение $1:$1.

    Совет: Можно также щелкнуть кнопки Свернуть всплывающее окно

    в правом конце строки, чтобы повторить вверху и Столбцы для повторения в левой части поля, а затем выбрать строки заголовка или столбцы, которые нужно повторить на листе. После завершения выбора строк или столбцов заголовка нажмите кнопку Свернуть диалоговое окно

    еще раз, чтобы вернуться в диалоговое окно.

    Примечание: Если выделено более одного листа, поля сквозные строки и сквозные столбцы будут недоступны в диалоговом окне Параметры печати. Чтобы отменить выделение нескольких листов, щелкните любой невыделенный лист. Если невыделенных листов нет, щелкните правой кнопкой мыши ярлычок выделенного листа и в контекстном меню выберите команду Разгруппировать листы.

    Перемещение или копирование ячеек, строк и столбцов

    При перемещении или копировании строк и столбцов Excel по умолчанию перемещает или копирует все содержащиеся в них данные, включая формулы и их результирующие значения, комментарии, форматы ячеек и скрытые ячейки.

    При копировании ячеек, содержащих формулу, относительные ссылки на ячейки не корректируются. Таким образом, содержимое ячеек и любых ячеек, указывающих на них, может отображать #REF! (значение ошибки). В этом случае ссылки можно настроить вручную. Дополнительные сведения см. в статье Обнаружение ошибок в формулах.

    Для перемещения или копирования выбранных ячеек, строк и столбцов можно использовать команду Вырезать или Копировать , но также можно перемещать или копировать их с помощью мыши.

    По умолчанию в Excel отображается кнопка Параметры вставки . Если вам нужно переиграть его, перейдите в раздел Дополнительно в параметрах Excel. Дополнительные сведения см. в разделе Дополнительные параметры.

    Перемещение и копирование строк и столбцов с помощью команд

    изображение значка выреза

    1. Выделите ячейку, строку или столбец, которые нужно переместить или скопировать.
    2. Выполните одно из следующих действий:
    3. Чтобы переместить строки или столбцы, на вкладке Главная в группе Буфер обмена нажмите кнопку Вырезать

    Изображение значка копирования

    или нажмите клавиши CTRL+X.
    Чтобы скопировать строки или столбцы, на вкладке Главная в группе Буфер обмена щелкните Копировать

    • Чтобы переместить строки или столбцы, выберите в контекстном меню команду Вставить вырезанные ячейки.
    • Чтобы скопировать строки или столбцы, выберите в контекстном меню команду Вставить скопированные ячейки.

    Совет: Чтобы переместить или скопировать выделенный фрагмент на другой лист или в другую книгу, щелкните ярлычок другого листа или выберите другую книгу и выделите левую верхнюю ячейку области вставки.

    Примечание: В Excel вырезанные или скопированные ячейки выделяются анимированной пунктирной рамкой. Чтобы снять это выделение, нажмите клавишу ESC.

    Перемещение и копирование строк и столбцов с помощью мыши

    По умолчанию режим перетаскивания включен, поэтому можно перемещать и копировать ячейки с помощью мыши.

    1. Выделите строки или столбцы, которые вы хотите переместить или скопировать.
    2. Выполните одно из указанных ниже действий.
    3. Вырезать и заменить Наведите указатель мыши на границу выделенной области. Когда указатель примет вид указателя перемещения

    Примечание: Убедитесь, что во время операции перетаскивания удерживаете нажатой клавишу CTRL или SHIFT. Если вы отпустите клавиши CTRL или SHIFT перед нажатием кнопки мыши, вы будете перемещать строки или столбцы вместо их копирования.

    Примечание: С помощью мыши невозможно переместить или скопировать несмежные строки или столбцы.

    Копирование только видимых ячеек

    Если часть ячеек, строк или столбцов на листе не отображается, можно скопировать все ячейки или только видимые. Например, можно скопировать только отображаемые итоговые данные на листе со структурой.

    1. Выделите строки или столбцы, которые вы хотите переместить или скопировать.
    2. На вкладке Главная в группе Редактирование нажмите кнопку Найти и выделить и выберите команду Выделить группу ячеек.

    Изображение значка копирования

  • В группе Выбор щелкните элемент Только видимые ячейки и нажмите кнопку ОК.
  • На вкладке Главная в группе Буфер обмена щелкните Копировать

    Совет: Чтобы переместить или скопировать выделенный фрагмент на другой лист или в другую книгу, щелкните ярлычок другого листа или выберите другую книгу и выделите левую верхнюю ячейку области вставки.

    или нажмите клавиши CTRL+V.

    Щелкнув стрелку под кнопкой Вставить

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

    При копировании и вставке скрытых или отфильтрованных данных в другое приложение или в другой экземпляр приложения Excel будут скопированы только видимые ячейки.

    Предотвращение замещения данных скопированными пустыми ячейками

    Изображение значка копирования

    1. Выделите строки или столбцы, которые вы хотите переместить или скопировать.
    2. На вкладке Главная в группе Буфер обмена щелкните Копировать

    Перемещение и копирование только содержимого ячейки

    изображение значка выреза

    1. Дважды щелкните ячейку с данными, которые нужно переместить или скопировать. Вы также можете изменять и выбирать данные ячейки в строка формул.
    2. Выделите строки или столбцы, которые вы хотите переместить или скопировать.
    3. На вкладке Главная в группе Буфер обмена выполните одно из указанных ниже действий.
    4. Чтобы переместить выделенный фрагмент, нажмите кнопку Вырезать

    Изображение значка копирования

    или нажмите клавиши CTRL+X.
    Чтобы скопировать выделенный фрагмент, нажмите кнопку Копировать

    Примечание: При двойном щелчке ячейки или нажатии клавиши F2 для редактирования активной ячейки клавиши со стрелками будут работать только внутри данной ячейки. Чтобы с помощью клавиш со стрелками переместиться в другую ячейку, сначала нажмите клавишу ВВОД, чтобы завершить внесение изменений в активную ячейку.

    Копирование значений ячеек, форматов ячеек и только формул

    При вставке скопированных данных можно выполнить любое из следующих действий:

    • вставить только параметры форматирования ячейки, такие как цвет текста или цвет заливки (но не содержимое ячеек);
    • преобразовать формулы в ячейках в вычисленные значения без переопределения существующего форматирования;
    • вставить только формулы (но не вычисленные значения).

    Последовательность действий

    Изображение значка копирования

    1. Выделите строки или столбцы, которые вы хотите переместить или скопировать.
    2. На вкладке Главная в группе Буфер обмена щелкните Копировать

    • чтобы вставить только значения, выберите вариант значения;
    • чтобы вставить только форматы ячеек, выберите вариант Форматирование;
    • чтобы вставить только формулы, выберите вариант формулы.

    Копирование параметров ширины ячеек

    При вставке скопированных данных к ним применяются параметры ширины целевых ячеек. Чтобы изменить ширину ячеек в соответствии с параметрами исходных ячеек, выполните указанные ниже действия.

    изображение значка выреза

    1. Выделите строки или столбцы, которые вы хотите переместить или скопировать.
    2. На вкладке Главная в группе Буфер обмена выполните одно из указанных ниже действий.
    3. Чтобы переместить ячейки, нажмите кнопку Вырезать

    Изображение значка копирования

    или нажмите клавиши CTRL+X.
    Чтобы скопировать ячейки, щелкните Копировать

    Совет: Чтобы переместить или скопировать выделенный фрагмент на другой лист или в другую книгу, щелкните ярлычок другого листа или выберите другую книгу и выделите левую верхнюю ячейку области вставки.

    Для перемещения или копирования выбранных ячеек, строк и столбцов можно использовать команду Вырезать или Копировать , но также можно перемещать или копировать их с помощью мыши.

    Перемещение и копирование строк и столбцов с помощью команд

    изображение значка выреза

    1. Выделите ячейку, строку или столбец, которые нужно переместить или скопировать.
    2. Выполните одно из указанных ниже действий.
    3. Чтобы переместить строки или столбцы, на вкладке Главная в группе Буфер обмена нажмите кнопку Вырезать

    Изображение значка копирования

    или нажмите клавиши CTRL+X.
    Чтобы скопировать строки или столбцы, на вкладке Главная в группе Буфер обмена щелкните Копировать

    • Чтобы переместить строки или столбцы, выберите в контекстном меню команду Вставить вырезанные ячейки.
    • Чтобы скопировать строки или столбцы, выберите в контекстном меню команду Вставить скопированные ячейки.

    Совет: Чтобы переместить или скопировать выделенный фрагмент на другой лист или в другую книгу, щелкните ярлычок другого листа или выберите другую книгу и выделите левую верхнюю ячейку области вставки.

    Примечание: В Excel вырезанные или скопированные ячейки выделяются анимированной пунктирной рамкой. Чтобы снять это выделение, нажмите клавишу ESC.

    Перемещение и копирование строк и столбцов с помощью мыши

    Значок

    1. Выделите строки или столбцы, которые вы хотите переместить или скопировать.
    2. Выполните одно из указанных ниже действий.
    3. Вырезать и вставить Наведите указатель мыши на границу выделенной области. Когда указатель становится указателем руки

    Значок

    , перетащите строку или столбец в другое расположение.
    Вырезать и заменить Удерживая нажатой клавишу SHIFT, наведите указатель на границу выделенного фрагмента. Когда указатель становится указателем перемещения

    Значок

    , перетащите строку или столбец в другое расположение. Excel выдаст предупреждение, если вы собираетесь заменить строку или столбец. Нажмите кнопку Отмена , чтобы избежать замены.
    Копирование и вставка Удерживая нажатой клавишу CTRL, наведите указатель на границу выделенного фрагмента. Когда указатель становится указателем перемещения

    Значок

    , перетащите строку или столбец в другое расположение.
    Копирование и замена Удерживая нажатой клавишу SHIFT и CTRL, наведите указатель на границу выделенного фрагмента. Когда указатель становится указателем перемещения

    Примечание: Убедитесь, что во время операции перетаскивания удерживаете нажатой клавишу CTRL или SHIFT. Если вы отпустите клавиши CTRL или SHIFT перед нажатием кнопки мыши, вы будете перемещать строки или столбцы вместо их копирования.

    Примечание: С помощью мыши невозможно переместить или скопировать несмежные строки или столбцы.

    Перемещение и копирование только содержимого ячейки

    изображение значка выреза

    1. Дважды щелкните ячейку с данными, которые нужно переместить или скопировать. Вы также можете изменять и выбирать данные ячейки в строка формул.
    2. Выделите строки или столбцы, которые вы хотите переместить или скопировать.
    3. На вкладке Главная в группе Буфер обмена выполните одно из указанных ниже действий.
    4. Чтобы переместить выделенный фрагмент, нажмите кнопку Вырезать

    Изображение значка копирования

    или нажмите клавиши CTRL+X.
    Чтобы скопировать выделенный фрагмент, нажмите кнопку Копировать

    Примечание: При двойном щелчке ячейки или нажатии клавиши F2 для редактирования активной ячейки клавиши со стрелками будут работать только внутри данной ячейки. Чтобы с помощью клавиш со стрелками переместиться в другую ячейку, сначала нажмите клавишу ВВОД, чтобы завершить внесение изменений в активную ячейку.

    Копирование значений ячеек, форматов ячеек и только формул

    При вставке скопированных данных можно выполнить любое из следующих действий:

    • вставить только параметры форматирования ячейки, такие как цвет текста или цвет заливки (но не содержимое ячеек);
    • преобразовать формулы в ячейках в вычисленные значения без переопределения существующего форматирования;
    • вставить только формулы (но не вычисленные значения).

    Последовательность действий

    Изображение значка копирования

    1. Выделите строки или столбцы, которые вы хотите переместить или скопировать.
    2. На вкладке Главная в группе Буфер обмена щелкните Копировать

    • Чтобы вставить только значения, щелкните Вставить значения.
    • Чтобы вставить только форматы ячеек, нажмите кнопку Вставитьформатирование.
    • Чтобы вставить только формулы, нажмите кнопку Вставитьформулы.

    Вы можете перемещать или копировать выбранные ячейки, строки и столбцы с помощью мыши и транспонирования.

    Перемещение и копирование ячеек

    1. Выделите ячейки или диапазон ячеек, которые нужно переместить или скопировать.
    2. Наведите указатель на границу выбранной ячейки или диапазона.
    3. Когда указатель становится

    Необходимые действия

    Перетащите ячейки в другое место.

    Удерживая нажатой клавишу OPTION, перетащите ячейки в другое место.

    Примечание: При перетаскивании или вставке ячеек в новое место, если в этом расположении есть уже существующие данные, Excel перезапишет исходные данные.

    Перемещение или копирование строк или столбцов

    1. Выберите строки или столбцы, которые нужно переместить или скопировать.
    2. Наведите указатель на границу выбранной ячейки или диапазона.
    3. Когда указатель становится

    Необходимые действия

    Перемещение строк или столбцов

    Перетащите строки или столбцы в другое место.

    Копирование строк или столбцов

    Удерживая нажатой клавишу OPTION, перетащите строки или столбцы в другое место.

    Перемещение или копирование данных между существующими строками или столбцами

    Удерживая нажатой клавишу SHIFT, перетащите строку или столбец между существующими строками или столбцами. Excel выделяет место для новой строки или столбца.

    Преобразование столбцов в строки или строк в столбцы

    1. Скопируйте строки или столбцы, которые требуется транспонировать.
    2. Выберите целевую ячейку (первую ячейку строки или столбца, в которую требуется вставить данные) для строк или столбцов, которые вы преобразуете.
    3. На вкладке Главная в разделе Изменить щелкните стрелку рядом с полем Вставить и выберите пункт Транспонировать.

    Примечание: Столбцы и строки не могут перекрываться. Например, если выбрать значения в столбце C и попытаться вставить их в строку, перекрывающую столбец C, Excel отобразит сообщение об ошибке. Область назначения вставленного столбца или строки должна находиться вне исходных значений.

    Генерация дубликатов строк

    Исходные данные

    В большинстве случаев повторы в наших данных нежелательны и мы с вами стараемся от них избавиться разными способами. Но иногда случается, что дубликаты нужны и полезны, и более того — нам необходимо их создавать! Допустим, что у нас есть вот такая таблица с именами людей, заказавших билет в кино и количеством билетов для каждого:
    Каждому билету нужно присвоить уникальный 6-значный номер, который формируется здесь простой функцией СЛУЧМЕЖДУ (RANDBETWEEN) , генерирующей целое случайное число в заданном диапазоне 100000-999999. Да, я знаю, что теоретически совпадения могут быть, но вероятность очень невелика и пока нас, допустим, устраивает (кого не устраивает — см.эту статью). Проблема в другом: для тех, кто заказал больше одного билета, нужно вставить в таблицу новые строки-дубли (по количеству заказанных билетов), т.е. на выходе получить вот такое:
    Руками такое делать — тоскливо, формулами — сложно. Так что остаются два наиболее удобных варианта — макросы и Power Query.

    Способ 1. Создание дубликатов строк макросом

    Откроем редактор макросов кнопкой Visual Basic на вкладке Разработчик (Developer) или сочетанием клавиш Alt + F11 . Вставим новый модуль через меню Insert — Module и скопируем туда текст нашего макроса:

    Sub Duplicate_Rows() Dim cell As Range Set cell = Range("B2") 'первая ячейка в столбце с кол-вом билетов Do While Not IsEmpty(cell) If cell > 1 Then cell.Offset(1, 0).Resize(cell.Value - 1, 1).EntireRow.Insert 'вставляем N пустых строк cell.Resize(cell.Value, 1).EntireRow.FillDown 'заполняем вниз из первых ячеек End If Set cell = cell.Offset(cell.Value, 0) Loop End Sub
    1. проходим сверху-вниз по столбцу начиная с B2 до первой пустой ячейки
    2. если число в ячейке >1, то вставляем пустых строк под ячейкой на одну меньше, чем число билетов
    3. заполняем пустые ячейки (метод FillDown — аналог «протягивания за черный крестик» в правом нижнем углу ячейки)
    4. переходим к следующей ячейке и т.д.

    Способ 2. Создание дубликатов строк в Power Query

    Тем, кто хотя бы немного сталкивался с Power Query, рекламировать его мощь не нужно 🙂 Для тех, кто не знаком (если коротко), то Power Query — это бесплатная надстройка для Excel от Microsoft, умеющая делать с данными практически все, что только можно себе представить: загрузку из любых источников, очистку, трансформацию, анализ данных и т.д. Для Excel 2010-2013 ее можно скачать с сайта Microsoft (появится отдельная вкладка Power Query после установки), а в Excel 2016 она уже встроена по-умолчанию (группа Получить внешние данные на вкладке Данные).

    Power Query может легко и красиво решить нашу проблему с генерацией дубликатов.

    Для начала, выделим нашу таблицу и загрузим ее в Power Query кнопкой Из таблицы/диапазона (From Table/Range) на вкладке Данные (Data) или Power Query:

    Загрузка данных в Power Query

    После окна подтверждения увидим редактор запросов и нашу таблицу. Добавим пользовательский столбец на вкладке Добавить столбец (Add Column — Custom Column) :

    Добавляем вычисляемый столбец

    В появившемся окне введем имя столбца и формулу, которая создает список чисел от 1 до количества билетов в каждой строке:

    Формула столбца

    После нажатия на ОК появится новый столбец со списками, элементы которых можно развернуть в строки, используя кнопку в шапке таблицы:

    Разворачиваем списки

    В итоге, получаем практически то, что хотелось:

    Сгенерированные дубликаты строк

    Осталось удалить ненужный больше столбец Список (правой кнопкой мыши по заголовку — Удалить столбец) и выгрузить данные обратно на лист на вкладке Главная (Home) с помощью кнопки Закрыть и загрузить — Закрыть и загрузить в. (Close&Load — Close&Load to. ) и указать подходящее место для результирующей таблицы:

    Выгружаем на лист

    И останется совсем простая часть — добавить к таблице столбец с формулой СЛУЧМЕЖДУ (RANDBETWEEN) для генерации случайных номеров билетов:

    Результат

    Особенно приятно, что при любых изменениях в исходной (левой) таблице (добавлении новых людей или изменении количества билетов), достаточно будет просто обновить правой кнопкой мыши нашу результирующую таблицу с номерами билетов.

    P.S.

    Если нужно, чтобы случайные числа не генерировались каждый раз заново при пересчете листа, а формировались один раз, сохраняя потом свои значения, то придется использовать макро-функцию StaticRandBetween из надстройки PLEX или что-то аналогичное.

    Также можно, для наглядности, склеивать через дефис номер билета и порядковый номер из столбца Список прямо в Power Query, используя команду Объединить столбцы на вкладке Преобразование (Transform) .

    Ссылки по теме

    • Слияние двух списков без дубликатов
    • Извлечение уникальных элементов из диапазона
    • Что такое макросы, как их использовать, куда вставлять код макросов на Visual Basic

    Как дублировать строку в excel

    Здравствуйте!
    Пример (файл прикреплен):
    Есть документ в котором несколько сотен строк. В течении дня возникает необходимость дублирования строк подряд (например с 121 до 140), делается вручную путем выделения всей строки (путем нажатия на номер строки) далее «Ctrl»+»С» далее «Ctrl»+»+». Строка вставляется ниже.
    Возможно как то упростить процесс? Все время необходимо продублировать разное кол-во строк.
    Читал форум, единственное предложение что нашел, было связано с фильтром и последующей сортировкой, но это не подходит так как документ фильтровать можно, но сортировать нельзя.
    В примере схематично показано как есть, и как необходимо сделать.
    Если макрос, то возможно не встраивать его в документ где нужна дубликация?

    Прикрепленные файлы

    • Пример.xlsx (9.62 КБ)

    Изменено: mos_art — 01.02.2017 16:45:17
    Пользователь
    Сообщений: 8196 Регистрация: 21.12.2012
    01.02.2017 17:04:32
    Нужен признак — сколько раз повторить. См. ячейки J1 и I1.
    Прикрепленные файлы

    • Repeat.xlsx (10.59 КБ)

    «..Сладку ягоду рвали вместе, горьку ягоду я одна.»
    Пользователь
    Сообщений: 65 Регистрация: 27.10.2016
    01.02.2017 17:10:36

    Каждую строку нужно повторить только один раз, количество строк, которые нужно продублировать всегда разное (например в документе 500 строк, нужно продублировать только строки с 401 по 408, потом строки с 37 по 39 и т.д.) при этом необходимо чтобы сохранялись значения в ячейках и формулы (как в ячейках J4, J5 и т.д.

    З.Ы. Важно, чтобы дубликат добавлялся с помощью новой строки

    Изменено: mos_art — 01.02.2017 17:12:29
    Пользователь
    Сообщений: 87 Регистрация: 01.01.1970
    01.02.2017 19:13:17
    Как узнать, какие именно строки копировать? От чего зависит?
    Пользователь
    Сообщений: 65 Регистрация: 27.10.2016
    02.02.2017 09:37:33

    В том то и дело, что нет закономерности. Опишу суть: есть документ, в нем шапка с атрибутами и непосредственно сами строки с данными. Сегодня изменилось значение в какой либо строчке, мне надо отобразить это изменение. Веделяется вся строка (именно строка, не только заполненные ячейки) потом строка копируется и вставляется через «Ctrl»+»+». Получается две полностью одинаковые строчки, не меняется ни форматирование, ни содержание ячеек, то есть сохраняются все формулы в этих строчках и не едут формулы по всему документу. И потом я уже помечаю старую строку, а в новую вношу изменение.

    Пользователь
    Сообщений: 87 Регистрация: 01.01.1970
    02.02.2017 13:27:48

    И что собственно надо, чтобы при выделении строк(и) само строку ниже добавило? Или Вы в конце дня сами ищете изменения и добавляете строки, и надо это автоматизировать?

    Пользователь
    Сообщений: 65 Регистрация: 27.10.2016
    03.02.2017 10:48:34

    Ник Никитич, наверно не совсем корректно отписался я в сообщении выше. Есть документ со строками, мне поступает информация извне, что поменялось какое-то значение. Мне надо это изменение внести в документ, но при этом не просто поменять одно на другое а, оставить старую строку, создать новую путем дублирования и в новой уже поменять значение, старая строка при этом остается (я просто помечаю символами что эта срока старая, а эта новая что бы в дальнейшем пользователь, к которому уйдет документ мог видеть какие значения были, то есть старая строчка, и новые, то есть новая строчка).
    Просто порой за день необходимо внести 200-300 изменений и каждый раз в ручную добавлять копии строк занимает много времени. И собственно вопрос, можно ли как то (например макросом) сделать так: я выделяю например 3 строки, запускаю макрос и он добавляет 3 новых строк, но не так, что 3 строки было и он добавил просто 3 строки ниже, то есть было
    1
    2
    3
    стало
    1
    2
    3
    1.1
    2.1
    3.1
    а надо так: что было
    1
    2
    3
    а стало
    1
    1.1
    2
    2.1
    3
    3.1
    Просто порой строк за раз так надо продублировать 30-50

    Пользователь
    Сообщений: 87 Регистрация: 01.01.1970
    03.02.2017 21:27:05
    Я не знаю правильно ли я Вас понял, и сильно ли поможет.

    Sub VS() Dim rng As Range Dim i As Integer Dim a As Integer Dim y As Integer Dim z As Integer Set rng = Selection If Selection.Cells.Count < 256 Then MsgBox "Не выделена строка!" Else i = rng.Rows.Count y = rng.Rows(1).Row z = rng.Rows(i).Row For a = z To y Step -1 Rows(a).Copy Rows(a + 1).Select Selection.Insert Shift:=xlDown Next a End If End Sub

    Изменено: Ник Никитич - 03.02.2017 21:27:26
    Пользователь
    Сообщений: 87 Регистрация: 01.01.1970
    03.02.2017 21:55:01

    Я бы ещё посоветовал прикрутить это дело к Worksheet.SelectionChange, тогда достаточно выделить строку(и), и они автоматически скопируются

    Сообщений: 61042 Регистрация: 14.09.2012
    Контакты см. в профиле
    03.02.2017 21:55:23

    Sub Macro1() Dim i As Long, StartRow As Long, FinishRow As Long StartRow = Selection.Row FinishRow = Selection.Row + Selection.Rows.Count - 1 For i = FinishRow To StartRow Step -1 Rows(i + 1).Resize(1).Insert Rows(i).Copy Cells(i + 1, 1) Next End Sub

    Пользователь
    Сообщений: 65 Регистрация: 27.10.2016
    06.02.2017 11:58:18

    Попробовал оба варианта, работают. Проверил в работе немного, вроде все как-надо. Спасибо большое!

    З.Ы. Скажите, можно макрос чуть модернизировать? Сделать так, чтобы строки сразу помечались в столбце "С"?
    то есть были строки:
    1
    2
    3
    Стали строки
    1
    1.1
    2
    2.1
    3
    3.1
    И при этом в столбце С по этим строкам проставились символы "*" и "/" вот так:
    1 *
    1.1 /
    2 *
    2.1 /
    3 *
    3.1 /

    Изменено: mos_art - 06.02.2017 12:53:52
    Пользователь
    Сообщений: 87 Регистрация: 01.01.1970
    06.02.2017 15:18:08
    В макрос Юрия добавьте строки, которые я обозначил словом добавить.

    Sub Macro1() Dim i As Long, StartRow As Long, FinishRow As Long StartRow = Selection.Row FinishRow = Selection.Row + Selection.Rows.Count - 1 For i = FinishRow To StartRow Step -1 Rows(i + 1).Resize(1).Insert Rows(i).Copy Cells(i + 1, 1) Cells(i, 3).Value = "*" ' добавить Cells(i + 1, 3).Value = "/" ' добавить Next End Sub

    Пользователь
    Сообщений: 65 Регистрация: 27.10.2016
    06.02.2017 15:31:31

    Ник Никитич, спасибо Вам. Вы очень помогли. Можете посоветовать какой-нибудь сборник/справку для начинающих по макросам? Я даже значение команд не понимаю, чтобы самостоятельно решать собственные проблемы

    Пользователь
    Сообщений: 87 Регистрация: 01.01.1970
    06.02.2017 16:11:10

    Я бы с радостью, но ещё забанят за рекламу, поэтому, надеюсь, модераторы Вам подскажут. Да и книг они прочли в 10 раз больше чем я, а значит их совет будет полезнее.

    Пользователь
    Сообщений: 2639 Регистрация: 02.04.2015
    06.02.2017 16:15:22
    Почитайте, к примеру Д.Уокенбаха, а лучше желание самому писать и доступ к интернету
    «Бритва Оккама» или «Принцип Калашникова»?
    Пользователь
    Сообщений: 65 Регистрация: 27.10.2016
    06.02.2017 16:15:48
    Ник Никитич, а можете мне написать сразу на E-mail , благо функционал сайта позволяет
    Изменено: mos_art - 06.02.2017 16:16:18
    Пользователь
    Сообщений: 2639 Регистрация: 02.04.2015
    06.02.2017 16:18:25
    На этом форуме, много полезного можно приобрести, помогая другим.
    «Бритва Оккама» или «Принцип Калашникова»?
    Страницы: 1
    Читают тему

    © Николай Павлов, Planetaexcel, 2006-2023
    info@planetaexcel.ru

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

    ООО "Планета Эксел"
    ИНН 7735603520
    ОГРН 1147746834949
    ИП Павлов Николай Владимирович
    ИНН 633015842586
    ОГРНИП 310633031600071
  • Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *