Как в Range указать диапазон с помощью переменных? Образец:
Код
If Intersect(Target, Range("B:B,O:P")) Is Nothing Then
Что имеем: Два блока IF:
Код
If Not Intersect(Target, Sheet1.Range(Cells(2, "B"), Cells(Sheet1.Range("B2").CurrentRegion.Rows.Count - 1, "B"))) Is Nothing Then...
If Not Intersect(Target, Sheet1.Range(Cells(2, "O"), Cells(Sheet1.Range("B2").CurrentRegion.Rows.Count, "P"))) Is Nothing Then...
PS: Почему не работает такой вариант:
Код
If Not Intersect(Target, Sheet1.Range(Cells(2, "B"), Cells(Sheet1.Range("B2").CurrentRegion.Rows.Count - 1, "B"))) OR Not Intersect(Target, Sheet1.Range(Cells(2, "O"), Cells(Sheet1.Range("B2").CurrentRegion.Rows.Count, "P"))) Is Nothing Then...
нельзя сказать почему что-то не работает если не понятно "а что, собственно, нужно получить?" сначала обьяснение словами что хотим потом пример кода, которым пытаемся достичь поставленной цели и только потом возможен ответ почему это не получилось
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
Ігор Гончаренко написал: сначала обьяснение словами что хотим
В Range прописать два диапазона с помощью переменных.
Можно ли объединить эти два диапазона: Range(Cells(2, "B"), Cells(Sheet1.Range("B2").CurrentRegion.Rows.Count - 1, "B"))) Range(Cells(2, "O"), Cells(Sheet1.Range("B2").CurrentRegion.Rows.Count, "P"))) чтобы получилось как в образце: Range("B:B,O:P")
Dim TotalRange, rngP1, rngP2 As Range
Set rngP1 = Sheet1.Range(Cells(2, "B"), Cells(Sheet1.Range("B2").CurrentRegion.Rows.Count - 1, "B"))
Set rngP2 = Sheet1.Range(Cells(2, "O"), Cells(Sheet1.Range("B2").CurrentRegion.Rows.Count, "P"))
Set TotalRange = Application.Union(rngP1, rngP2)
If Not Intersect(Target, TotalRange) Is Nothing Then.....
Dim TotalRange As Range
With Range(Cells(2, "A"), Cells(2, "B").CurrentRegion.SpecialCells(xlLastCell))
Set TotalRange = Range(.Columns("B").Address & "," & .Columns("O:P").Address)
End With
TotalRange.Select
Правда если задавать адрес для команды Range в виде строки, ограничение всего в 255 символов.