Перенос строки на другой лист - VBA

Узнай цену своей работы

Формулировка задачи:

Помогите пожалуйста с простой задачей, не понимаю почему не работает. Нужно просто переносить строку из 17 столбцов в последнюю свободную строку другого листа по условию не пустой 3-й ячейки. Так-же у меня тут не прописано, но нужно чтобы макрос удалял строку из исходного листа (2018) и сортировал оставшиеся чтобы не было пробелов. Ну или удалял строку прямо из таблицы целиком после копирования. Вот что удалось написать мне. С VBA столкнулся впервые, пока не очень понимаю что как работает.

Решение задачи: «Перенос строки на другой лист»

textual
Листинг программы
Sub archive()
 
Dim i As Integer
Dim j As Integer
Dim cnt As Integer
Dim txt As String
Dim var As Long
 
cnt = 0
txt = "*архив*"
var = Sheets("архив").Cells(Rows.Count,1).End(xlUp).Row + 1
Application.ScreenUpdating = False
For i = 1 To 40
   If LCase(Cells(i, 17)) Like LCase(txt) Then
        cnt = cnt + 1
        Sheets("2018").Range(Cells(i, 1), Cells(i, 17)).Copy
        Sheets("архив").Range("A" & var).PasteSpecial (xlPasteAllExceptBorders)
        Rows(i).Delete
        var = var + 1
   End If
Next i
Application.ScreenUpdating = True
 
MsgBox "в архив перенесено = " & cnt & " "
 
End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.5 из 5
Похожие ответы