Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
В макросе конкретную ячейку заменить ссылкой на активную.
 
Здравствуйте. Прошу помощи, так пока еще не изучил язык VBА, а совет спеца очень нужен.

Есть макрос который копирует строку и вставляет ее ниже в определенном кол-ве .
Т.е. есть строка с данными по товару, в ячейrе F2 стоит кол-во этого товара в заказе, например "3", ниже строкой идут другие товары с другим кол-вом. Макрос начинает делать дубликаты по всем строкам начиная с верхней ячейки по кол-ву указанному в столбце F.
После того как макрос выполнен, кол-во товара не обнуляется. Т.е при добавлении новых позиций и использовании макроса - уже созданные ранее дубликаты будут повторно сгенерированы, что уже не нужно.

Вот сам макрос:
Код
Sub Duplicate_Rows()
    Dim cell As Range
 
    Set cell = Range("F2")      'первая ячейка в столбце с кол-вом билетов
    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
 
Цитата
Web-Zahar написал: в ячейrе F2 стоит кол-во
Вы уверены, что количество указано в столбце F?  
Согласие есть продукт при полном непротивлении сторон.
 
Прошу прощения. да. В столбце В.  
 
Прошу прощения. да. В столбце В.  

Я вижу два варианта. Если можно - то ссылку на активную ячейку, и каждый раз ее выбирать (я не знаю как записать в коде). Либо присваивать уже созданным дубликатам значение = 1.  
 
Сделано для этого варианта:
Цитата
Web-Zahar написал: Либо присваивать уже созданным дубликатам значение = 1.  
Макрос
Изменено: Karataev - 18 Мар 2018 21:39:27
 
Цитата
Web-Zahar написал: Если можно - то ссылку на активную ячейку
Для работы с активной ячейкой есть слово "ActiveCell". Вместо этого:
Код
Set cell = Range("B2")

используйте это:
Код
Set cell = ActiveCell
 
Спасибо большое, а я вставлял с кавычками и получал ошибку..) Остановлюсь на единицах, потому что более практично.
Страницы: 1
Читают тему (гостей: 1)
Наверх