Страницы: 1
RSS
как можно очистить столбец, кроме заголовка?, перед заполнением
 
Прошу еще помочь

Как можно очистить столбец, сохраняя заголовок, перед выполнением макроса?
Макрос копирует со второго листа окрашенные ячейки на первый лист. Спасибо за него tolikt
Изменено: Имя Фамилия - 07.02.2022 19:48:52
 
Код
Sub GoodsList()
    Dim j As Long, ListCol As Long
    Dim C As Range
    Dim S1 As Worksheet, S2 As Worksheet

    Set S1 = Sheets("примерный список вещей")
    Set S2 = Sheets("точно берем с собой")
    ListCol = 4 ' столбец списка

    With S2
        j = .Cells(.Rows.Count, ListCol).End(xlUp).Row
        If j > 1 Then
            .Range(.Cells(2, ListCol), .Cells(j, ListCol)).ClearContents
        End If
        j = .Cells(.Rows.Count, ListCol).End(xlUp).Row + 1
    End With
    
    For Each C In S1.UsedRange
        If Trim(C) <> "" And C.Interior.ColorIndex = 6 Then
            S2.Cells(j, ListCol) = C
            j = j + 1
        End If
    Next
End Sub
 
Цитата
Как можно очистить столбец, сохраняя заголовок,
Добавить в макрос строку перед циклом
Код
j = S2.Cells(Columns(1).Cells.Count, ListCol).End(xlUp).Row + 1
  S2.Range("D2:D" & j).ClearContents
 
И который столбец? С каким заголовком? Если как в примере, то наверное что-то такое:
Range("D2:D" & j).ClearContents - очищаем столбец D от 2 до последней строки. Делать до начала цикла  но после "j=..."  :)
 
Цитата
j = S2.Cells(Columns(1).Cells.Count, ListCol).End(xlUp).Row + 1  S2.Range("D2:D" & j).ClearContents
добавила, но.. как бы это правильно сказать... очищается, а потом всё смещается вниз

Цитата
Делать до начала цикла  но после "j=..."
после J внесла
Список вещей (1).xlsm (16.4 КБ)

New, спасибо, макрос работает
 
Т.к. из примера непонятно почему все смещается вниз (возможно еще макросы какие-то в Вашем файле работают, может еще что-то не озвученное в Вашей теме), тогда можно проще: Range("D2:D1000").ClearContents
Вместо "1000" подставьте свой номер последней строки (с запасом) :)
 
Цитата
а потом всё смещается вниз
Перед циклом добавьте j=2
Код
j = S2.Cells(Columns(1).Cells.Count, ListCol).End(xlUp).Row + 1
  S2.Range("D2:D" & j).ClearContents
j=2
 
, работает
Спасибо!
Страницы: 1
Наверх