Я работаю с текстовым файлом фиксированного формата из 100 000 строк, который я копирую и вставляю в лист с именем DATA. Все строки в этом листе начинаются с AVS или AVD. У меня есть код ниже, который просматривает лист данных с функцией IF
MID
. Я только хочу получить данные, если первые 3 символа строки начинаются с AVS. При запуске он корректно извлекает данные из строки AVS, но затем в последующих строках отображаются те же данные, даже если они начинаются с AVD. Я перечислил образец ниже. Я думаю, что это может иметь отношение к обработке ошибок, но я не знаю. Я не получаю никаких ошибок, я просто получаю дополнительные данные, которые не запрашиваются. Любая помощь, которую вы, ребята, можете дать, была бы удивительной!
Sub AVS()
Dim ws As Worksheet
Dim ws1 As Worksheet
Set ws = ThisWorkbook.Worksheets("DATA")
Set ws1 = ThisWorkbook.Worksheets("AVS")
Dim lastRow, myLoop, newValue
lastRow = ws.Cells(Rows.Count, 1).End(xlUp).row
Application.ScreenUpdating = False
'Range("A" & lastRow).ClearContents
For myLoop = 1 To lastRow
If MID(ws.Range("A" & myLoop).Value, 1, 3) = "AVS" Then
newValue = MID(ws.Range("A" & myLoop).Value, 48, 4)
End If
ws1.Range("A" & myLoop).Value = newValue
Next
Application.ScreenUpdating = True
End Sub
Образец из таблицы данных:
AVS00001 Y6678 NN B5UP
AVD00001 6678 N INQN B5UP6678
AVS00001 Y6678 NN 0067
AVD00001 6678 N INQN 00676678
AVS00001 G6678 NN 1381
AVD00001 6678 N INQN 13816678
AVS00001 Y6678 NN 1922
AVD00001 6678 N INQN 192210-61096-58
AVD00001 6678 N INQN 19226678
AVD00001 6678 N INQN 19226678
AVS00001 Y6678 NN 5018
Текущие результаты
B5UP (CORRECT)
B5UP (WRONG, ROW STARTS WITH AVD)
0067 (CORRECT)
0067 (WRONG, ROW STARTS WITH AVD)
1381 (CORRECT)
1381 (WRONG, ROW STARTS WITH AVD)
1922 (CORRECT)
1922 (WRONG, ROW STARTS WITH AVD)
1922 (WRONG, ROW STARTS WITH AVD)
1922 (WRONG, ROW STARTS WITH AVD)
5018 (CORRECT)
Cu