Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / исключать Range из Range / 4 сообщений из 4, страница 1 из 1
22.02.2007, 14:50:01
    #34350426
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
исключать Range из Range
как можно сделать красиво исключение диапазона из диапазона. Например, вместо
Код: plaintext
1.
[b3:d6].Interior.ColorIndex =  4 
[c4:c5].Interior.ColorIndex = xlNone
написать бы :)
Код: plaintext
[b3:d6].Fictitious.Exclude([c4:c5]).Interior.ColorIndex =  4 
...
Рейтинг: 0 / 0
23.02.2007, 14:18:15
    #34351957
sergeyvg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
исключать Range из Range
Если не используешь условного форматирования, можно так
Код: 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
23.02.2007, 16:30:31
    #34352133
Victosha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
исключать Range из Range
вероятно я бы делал что-то вроде этого:

[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
23.02.2007, 18:02:56
    #34352251
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
исключать Range из Range
Спасибо, sergeyvg и Victosha! Интересные и подходящие варианты.
Хотя есть ограничения у варианта, предложенного sergeyvg, но я просто поражен подходом!
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / исключать Range из Range / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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