Я пытаюсь сделать код, который проверяет номера в листе мастера, который называется All в столбце D (например, 780101), и если он соответствует критериям, он копирует весь ряд и вставляет (не вставляют) его на другой лист с именем критериев (например, 780101), начиная с строки 6. Код, который у меня есть, не работает, как я этого хочу. Он не копирует все строки, соответствующие критериям, и иногда он вставляет пустые строки.Excel: скопировать и вставить строки на другом листе на основе ячейки
Sub Insert()
For Each Cell In Sheets("All").Range("D:D")
If Cell.Value = "780101" Then
matchRow = Cell.Row
Rows(matchRow & ":" & matchRow + 1).Select
Selection.Copy
Sheets("780101").Select
Rows("6:6").Select
Selection.Insert Shift:=xlDown
End If
Next
End Sub
Я только начинаю изучать VBA, так что, если это может быть возможным имена листов будет критерии значения ячеек (код для использования только в одном листе - 780101, но есть 20 листов с разными названиями).
a) Это те тексты, которые выглядят как число, а не реальные цифры? 'If Cell.Value =" 780101 "...' не то же самое, что 'If Cell.Value = 780101 ...'. б) если в строке ниже ничего нет (что вы включаете в копию), то да, вы будете получать пустые строки. – Jeeped
@Jeeped a) Нет, это цифры. Как котировка в формуле влияет на результат? б) На главном листе нет пустых строк. Числа разделяются только по строкам с помощью слова «Департамент» в том же столбце, что и числа (D). – Aktist
re: цитируемые числа против чисел. Вы также можете задать разницу между '.Value' и' .Value2'. – Jeeped