Найти столбец, в котором записаны даты - VBA

Узнай цену своей работы

Формулировка задачи:

Ввести координаты ячейки и определить относительно нее текущий регион (CurrentRegion), в котором найти первый слева столбец с датами. Отсортировать строки текущего региона по возрастанию дат в этом столбце. После этого вставить слева от текущего региона дополнительный столбец и проставить в нем нумерацию строк. Это было все задание. Я сделал на данный момент такое:
Теперь нужно в выделенном диапазоне найти первый столбец слева направо, в котором записаны даты. Подскажите, как это сделать?
нашел, TypeName, но каждый элемент массива cur_range определяется как range, надо как-то иначе определить тип, скорее всего не создавая массив, а сразу работать по выделенным ячейкам.
null
Вот, выделил нужный диапазон, теперь надо с ним все это сделать

Решение задачи: «Найти столбец, в котором записаны даты»

textual
Листинг программы
Sub Sel()
Dim i&
  With Application.InputBox("Введите адрес диапазона или выделите его мышкой", Type:=8).CurrentRegion
    For i = 1 To .Columns.Count
      If VarType(.Cells(1, i).Value) = vbDate Then
        .Sort .Cells(1, i), xlAscending, Header:=False
        .Columns(1).Insert
        With .Columns(1).Offset(, -1)
          .Formula = "=ROW(R1:R" & .Rows.Count & ")"
          .Value = .Value
        End With
        Exit Sub
      End If
    Next
    .Select
    MsgBox "Дата в первой строке диапазона не обнаружена", vbExclamation
  End With
End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5