Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Дублировать строки по условию - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Дублировать строки по условию
ak4-87 Дата: Четверг, 10.04.2025, 11:30 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

2010
Добрый день!

Не соображу как создать макрос, который бы дублировал строки внизу строки по условию, что в столбце Е стоит цифра 5.Заранее благодарю, если поможете.
К сообщению приложен файл: prilozhenie_1.xlsm (26.0 Kb)


Anna
 
Ответить
СообщениеДобрый день!

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

Автор - ak4-87
Дата добавления - 10.04.2025 в 11:30
elovkov Дата: Четверг, 10.04.2025, 14:00 | Сообщение № 2
Группа: Друзья
Ранг: Обитатель
Сообщений: 494
Репутация: 81 ±
Замечаний: 0% ±

Excel 2013
Если правильно понял, внизу строки с 5 в столбце Е создает такую же строку:
[vba]
Код

Sub NNN2()
    Dim ws As Worksheet
    Dim lastRow As Long, i As Long
    Dim valueE As Variant
    
    ' Устанавливаем активный лист (можно заменить на конкретный лист)
    Set ws = ActiveSheet
    
    ' Определяем последнюю строку с данными в столбце A (можно изменить на другой столбец)
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    
    ' Проходим по строкам снизу вверх (чтобы не нарушить нумерацию)
    Application.ScreenUpdating = False
    For i = lastRow To 1 Step -1
        valueE = ws.Cells(i, "E").Value ' Проверяем значение в столбце E
        
        ' Если в столбце E стоит цифра 5
        If valueE = 5 Then
            ' Вставляем строку ниже текущей
            ws.Rows(i + 1).Insert Shift:=xlDown
            
            ' Копируем всю строку в новую строку
            ws.Rows(i).Copy Destination:=ws.Rows(i + 1)
            
            ' Можно очистить значение в столбце E для дубликата (по желанию)
            ' ws.Cells(i + 1, "E").ClearContents
        End If
    Next i
    Application.ScreenUpdating = True
    
    MsgBox "Готово! Строки с цифрой 5 в столбце E были продублированы.", vbInformation
End Sub

[/vba]


Умное лицо это еще не признак ума. Все глупости на земле делаются именно с этим выражением лица
 
Ответить
СообщениеЕсли правильно понял, внизу строки с 5 в столбце Е создает такую же строку:
[vba]
Код

Sub NNN2()
    Dim ws As Worksheet
    Dim lastRow As Long, i As Long
    Dim valueE As Variant
    
    ' Устанавливаем активный лист (можно заменить на конкретный лист)
    Set ws = ActiveSheet
    
    ' Определяем последнюю строку с данными в столбце A (можно изменить на другой столбец)
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    
    ' Проходим по строкам снизу вверх (чтобы не нарушить нумерацию)
    Application.ScreenUpdating = False
    For i = lastRow To 1 Step -1
        valueE = ws.Cells(i, "E").Value ' Проверяем значение в столбце E
        
        ' Если в столбце E стоит цифра 5
        If valueE = 5 Then
            ' Вставляем строку ниже текущей
            ws.Rows(i + 1).Insert Shift:=xlDown
            
            ' Копируем всю строку в новую строку
            ws.Rows(i).Copy Destination:=ws.Rows(i + 1)
            
            ' Можно очистить значение в столбце E для дубликата (по желанию)
            ' ws.Cells(i + 1, "E").ClearContents
        End If
    Next i
    Application.ScreenUpdating = True
    
    MsgBox "Готово! Строки с цифрой 5 в столбце E были продублированы.", vbInformation
End Sub

[/vba]

Автор - elovkov
Дата добавления - 10.04.2025 в 14:00
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!