Я борюсь с чем-то, что должно быть довольно простым, однако я прочитал по крайней мере 15 способов сделать это и, похоже, не могу заставить его работать.
Вот пример набора данных:
9:30:01 584.7
9:30:01 590
9:30:01 595
9:30:02 584.51
9:30:03 584.62
9:30:04 584.44
9:30:05 584.05
Мне нужна только одна строка в секунду, поэтому из первых 3 строк должна остаться только одна. Мне все равно, первый это или последний, но код, который я использовал, сохраняет последний, 595 в данном случае.
Я делаю это с помощью цикла for, который очищает содержимое строки, которая имеет то же время, что и строка под ней. Затем я сортирую весь диапазон.
Я предполагаю, что есть более простой способ просто удалить лишнюю строку с самого начала. Однако, когда я использую удаление в диапазоне вместо очистки, он не удалит все повторяющиеся строки.
Вот как я хочу, чтобы данные выглядели так:
9:30:01 595
9:30:02 584.51
9:30:03 584.62
9:30:04 584.44
9:30:05 584.05
Мне нужно, чтобы это произошло для всего листа. Время — столбец B, а значения — столбец C.
Вот код, который я использую,
LastRow = ActiveSheet.UsedRange.row - 1 + _
ActiveSheet.UsedRange.Rows.Count
For RowNum = 2 To LastRow
If (Range("B" & RowNum) = Range("B" & RowNum + 1)) Then
Range("B" & RowNum).EntireRow.Clear
End If
Next RowNum
Range("A2:C" & LastRow).Sort key1:=Range("B2:B" & LastRow), _
order1:=xlAscending, Header:=xlNo