У меня есть основной лист под названием Список задач со списком строк, и мне нужно каждый ряд должен быть скопирован на конкретный лист на основе содержимого ячеек в Колонка I , Есть четыре других листов (под названием Администратор, двигателя, Лаборатория и РД), где должны быть скопированы, в зависимости от значения в Колонка I эти значения. Кроме того, существует отдельный лист с именем Завершено, где строки должны перемещаться (не копировать), содержащие слово «Завершить» в Столбец E листа под названием Список задач.Автоматически копировать строки в листе на основе ячейки
Ниже приведен код, который у меня есть, который я получил из сообщения, которое я нашел. В настоящее время он не копирует ничего, когда я запускаю его. Может ли кто-нибудь предложить новый код или изменения?
Sub copyRows()
Set a = Sheets("Task List")
Set b = Sheets("Admin")
Set c = Sheets("Engine")
Set d = Sheets("Lab")
Set e = Sheets("RD")
Set f = Sheets("Completed")
Dim t
Dim u
Dim v
Dim w
Dim y As Long
Dim z
t = 2
u = 2
v = 2
w = 2
z = 3
Do Until IsEmpty(a.Range("I" & z))
If a.Range("I" & z) = "Admin" Then
t = t + 1
b.Rows(t).Value = a.Rows(z).Value
End If
If a.Range("I" & z) = "Engine" Then
u = u + 1
c.Rows(u).Value = a.Rows(z).Value
End If
If a.Range("I" & z) = "Lab" Then
v = v + 1
d.Rows(v).Value = a.Rows(z).Value
End If
If a.Range("I" & z) = "RD" Then
w = w + 1
e.Rows(w).Value = a.Rows(z).Value
End If
If a.Range("E" & z) = "COMPLETE" Then
y = f.Range("a" & Rows.Count).End(xlUp).Row + 1
f.Rows(y).Value = a.Rows(z).Value
a.Rows(z).Delete
z = z - 1
End If
z = z + 1
Loop
End Sub
не используется 'Select Case' здесь? –
@ShaiRado: Какая польза от использования Select Case над циклом If/Elseif? –
Хммм, похоже, не работает. Я разместил код под вкладкой «ThisWorkbook» в средстве просмотра кода. Имеет ли значение, что данные на каждом листе не начинаются до строки 3 и ниже? – FMpro