Я перебираю значения в столбце B текущего рабочего листа.Если длина значения составляет 8 символов, скопируйте строку ВЕСЬ на другой лист.Это отчасти работает, но я пропускаю около ста строк, которые должны были быть скопированы.
Я полагаю, это связано с форматом значений ячеек в столбце B. Есть некоторые, которые являются просто текстомзаголовки, которые точно не будут соответствовать критериям.Все, что он должен скопировать, все в этом формате (столбец B):
6008571X
60088242
....
Интересующие меня строки содержат 8 символов в столбце B. Проблема в том, что некоторые из них могут быть отформатированы какчисел некоторые в виде текста (или, возможно, предшествует ').
Sub aims()
Dim i As Long
'Get the address of the first non blank cell in Row B from the bottom
MyFirstBlankAddress = Range("B1048576").End(xlUp).Offset(1, 0).Address
'Extract the number from the address to get the row number
MyRowNumber = Split(MyFirstBlankAddress, "$")(2)
For i = 1 To MyRowNumber
With Range("B" & i)
If Len(.Value) = 8 Then .EntireRow.Copy Destination:=Sheets("Sheet2").Range("A" & Rows.Count).End(xlUp).Offset(1)
End With
Next i
End Sub
Я ожидал, что скопировано 410 строк, в то время как только 276 были скопированы.
РЕДАКТИРОВАТЬ: Я читал ваши ответы / предложения и тестирование материала.Я узнал, что проблема заключается в другом.Мой оригинальный код правильно идентифицирует строки, это связано с копированием.
Если я изменю свой код, просто выделив совпадающие строки, он совпадет со всеми правильными строками:
If Len(.Value) = 8 Then .EntireRow.Interior.Color = 5296274