powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / исключать Range из Range
4 сообщений из 4, страница 1 из 1
исключать Range из Range
    #34350426
vbapro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как можно сделать красиво исключение диапазона из диапазона. Например, вместо
Код: plaintext
1.
[b3:d6].Interior.ColorIndex =  4 
[c4:c5].Interior.ColorIndex = xlNone
написать бы :)
Код: plaintext
[b3:d6].Fictitious.Exclude([c4:c5]).Interior.ColorIndex =  4 
...
Рейтинг: 0 / 0
исключать Range из Range
    #34351957
sergeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если не используешь условного форматирования, можно так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Sub Test()
  MsgBox RMinusR(Range("B3:D6,F8:G10,C9:D13"), Range("D5:H11,D13:E14")).Address
End Sub

Function RMinusR(WP As Range, WM As Range) As Range
  WP.FormatConditions.Delete
  Call WP.FormatConditions.Add(xlCellValue, xlEqual,  1 )
  WM.FormatConditions.Delete
  Set RMinusR = WP.SpecialCells(xlCellTypeAllFormatConditions)
  WP.FormatConditions.Delete
End Function 'RMinusR
...
Рейтинг: 0 / 0
исключать Range из Range
    #34352133
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вероятно я бы делал что-то вроде этого:

[b3:d6].Interior.ColorIndex = 4
application.Intersect([b3:d6], [c4:c5]).Interior.ColorIndex = xlNone

прямо по исходному вопросу здесь:
http://exceltips.vitalnews.com/Pages/T1235_Removing_Cells_from_a_Selected_Range.html

дают идею, которую можно переписать так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
 
Function MyExclude(WhatSelect As Range, WhatExclude As Range) As Range
    Dim rCell As Range
    On Error Resume Next
    For Each rCell In WhatSelect
        If Intersect(rCell, WhatExclude) Is Nothing Then
            If MyExclude Is Nothing Then
                Set MyExclude = rCell
            Else
                Set MyExclude = Union(MyExclude, rCell)
            End If
        End If
    Next
    On Error GoTo  0 
End Function
...
Рейтинг: 0 / 0
исключать Range из Range
    #34352251
vbapro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо, sergeyvg и Victosha! Интересные и подходящие варианты.
Хотя есть ограничения у варианта, предложенного sergeyvg, но я просто поражен подходом!
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / исключать Range из Range
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]