Страницы: 1
RSS
VBA вытянуть из Range("B:D") номера столбцов
 
Range("B:D") постоянно меняется
Может и Range("B:B") и Range("B:C") и Range("B:D")

каждый раз нужно находить из этого  Range, номера столбцов. По сути их максимум 3.
Основная проблема что переопределить входящую переменную Range("B:D") возможности нет.
На входе всегда буквенный диапазон. Он может быть смещен, в любую сторону.

Пример желаемой обработки:
Range("B:B")   -> даст № столбца clmn1 = 2  clmn2 = 0(нет №, так как только 1 столбец)  clmn3=0(нет №, так как только 1 столбец)
Range("B:C")   -> даст № столбца clmn1 = 2  clmn2 = 3  clmn3=0 (нет №, так как только 1 столбец)
Range("B:D")  -> даст № столбца clmn1 = 2  clmn2 = 3  clmn3=4


Спасибо, всем кто поможет.
Изменено: maxgen - 11.03.2019 08:34:54
 
непонятна логика.
Range("B:B") - 1 столбец;
Range("B:E") - 4 столбца;
Range("B:D")   - три столбца?
 
Михаил Витальевич С., изменил. Ошибся.
Изменено: maxgen - 11.03.2019 08:35:13
 
тема закрыта, написал так, мне хватило:
Код
Sub random_function()
Dim random_range As Range

Set random_range = Range("B:D")
count_clmn = random_range.Columns.count
number_clmn = random_range.Column

If count_clmn = 1 Then
clmn1 = number_clmn
clmn2 = 100
clmn3 = 100
End If
If count_clmn = 2 Then
clmn1 = number_clmn
clmn2 = number_clmn + 1
clmn3 = 100
End If
If count_clmn = 3 Then
clmn1 = number_clmn
clmn2 = number_clmn + 1
clmn3 = number_clmn + 2
End If

End Sub
Страницы: 1
Наверх