В столбце А у меня есть несколько чисел, отформатированных как текст из-за начальных нулей:

+------+
|  A   |
+------+
| 0001 |
| 0002 |
| 0003 |
| 0012 |
| 0013 |
| 0015 |
| 0017 |
| 0019 |
| 0020 |
+------+

Используя столбец A в качестве входных данных, я хочу заполнить два других столбца, B и C, например:

+------+------+
|  B   |  C   |
+------+------+
| 0001 | 0003 |
| 0012 | 0013 |
| 0015 |      |
| 0017 |      |
| 0019 | 0020 |
+------+------+

Я в основном хочу, чтобы начало и конец каждого диапазона чисел.

Числа, не включенные в столбец A, должны быть исключены из диапазонов в столбцах B и C.

Как это можно сделать в Excel?

1 ответ1

1

Это должно сделать это:

Sub dural()
  Dim N As Long, i As Long, K As Long, v As Long
  Dim vOld As Long
  N = Cells(Rows.Count, "A").End(xlUp).Row + 1
  K = 1

  For i = 1 To N
    v = CLng(Cells(i, 1).Value)
    If i = 1 Then
      Cells(1, "B").Value = v
      vOld = v
    Else
      If v = vOld + 1 Then
      Else
        Cells(K, "C").Value = vOld
        K = K + 1
        Cells(K, "B") = v
      End If
      vOld = v
    End If
  Next i

  For i = 1 To K
    If Cells(i, "B").Value = Cells(i, "C").Value Then Cells(i, "C").Value = ""
    If Cells(i, "B").Value = 0 Then Cells(i, "B").Value = ""
  Next i
End Sub

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .