powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel программное выделение несмежных ячеек
12 сообщений из 12, страница 1 из 1
Excel программное выделение несмежных ячеек
    #33732406
eugene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eugene

Как в Excel программно выделить несколько несмежных ячеек (аналогично с удерживанием клавиши CTRL в итерактивномрежиме)?
Код типа
ActiveSheet.Cells(B2).Select
….
ActiveSheet.Cells(B7).Select

Устанавливает выделение только на последней ячейке B7.
(Конечно можно исхитриться вместо выделения предложить например, заполнение фона ячейки цветом, типа
ActiveSheet.Cells(i, j).Interior.ColorIndex = 6
Но потом замучаешься снимать это же заполнение.)
...
Рейтинг: 0 / 0
Excel программное выделение несмежных ячеек
    #33732621
Ashton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
Public Sub SelectCells()
    Dim rng As Range
    
    Set rng = ActiveSheet.Range("B2,B7")
    
    rng.Select
End Sub
...
Рейтинг: 0 / 0
Excel программное выделение несмежных ячеек
    #34058671
Фотография Ivan33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
Sub UnSelectSomeCells()
    Dim rSelect As Range
    Dim rUnSelect As Range
    Dim rNew As Range
    Dim rCell As Range

    On Error Resume Next
    Set rSelect = Selection
    Set rUnSelect = Application.InputBox( _
      "What cells do you want to exclude?", Type:= 8 )
    If rUnSelect Is Nothing Then Exit Sub

    For Each rCell In rSelect
        If Intersect(rCell, rUnSelect) Is Nothing Then
            If rNew Is Nothing Then
                Set rNew = rCell
            Else
                Set rNew = Union(rNew, rCell)
            End If
        End If
    Next
    rNew.Select

    Set rCell = Nothing
    Set rSelect = Nothing
    Set rUnSelect = Nothing
    Set rNew = Nothing
End Sub
автор
To use the macro, select the entire range you want to start with, such as A7:R182. Then run the macro. You are asked to choose the cells to be unselected. You can do so by simply selecting the cells with the mouse, holding down the Shift key as you click on each one. When you dismiss the input box, the selection you started with is modified to exclude the cells you selected.
...
Рейтинг: 0 / 0
Excel программное выделение несмежных ячеек
    #34061047
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ashton
Код: plaintext
1.
2.
3.
4.
5.
6.
Public Sub SelectCells()
    Dim rng As Range
    
    Set rng = ActiveSheet.Range("B2,B7")
    
    rng.Select
End Sub


Проще наверное так:

[B2,B7].Select

Union([B2],[B7]).Select

Range("B2,B7").Select

Union(Range("B2"),Range("B7")).Select

Union(Cells(2,2),Cells(7,2)).Select

Union(Cells(2,"B"),Cells(7,"B")).Select

Только Select-то зачем? Практика показывает, что в 99.(9)% ситуаций "скрипач не нужен" :-)

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
Excel программное выделение несмежных ячеек
    #34079458
Ashton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Самым простым вариантом из всех, наверное, все-таки будет, как я написал.

Зачем Select? Автор просил выделить.
...
Рейтинг: 0 / 0
Excel программное выделение несмежных ячеек
    #34079613
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AshtonСамым простым вариантом из всех, наверное, все-таки будет, как я написал.

Зачем Select? Автор просил выделить.

Ну конечно, о чем разговор? Разве нужно делать что-то в одну операцию, когда то же самое можно сделать в три ;-)

Код: plaintext
1.
2.
3.
4.
5.
6.
Public Sub SelectCells()
    Dim rng As Range
    
    Set rng = ActiveSheet.Range("B2,B7")
    
    rng.Select
End Sub


Код: plaintext
1.
2.
Public Sub SelectCells()
    [B2,B7].Select
End Sub

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
Excel программное выделение несмежных ячеек
    #34080325
Ashton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это вопрос вкуса. Я могу в три, могу в одну. Я предпочитаю делать как написал, ты в одну строчку.

Ты еще посчитай, какой из двух вариантов отработает быстрее. :)
...
Рейтинг: 0 / 0
Excel программное выделение несмежных ячеек
    #34080393
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нечем крыть или опять не читаем то, на что отвечаем? :-))))))

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
Excel программное выделение несмежных ячеек
    #34080439
Ashton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По-моему, это ты не в теме. Посчитал, какой вариант быстрее в одну строчку или в три?
...
Рейтинг: 0 / 0
Excel программное выделение несмежных ячеек
    #34080661
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Про быстрее - это твоя личная вводная

Public Sub SelectCells()
Range("B2,B7").Select
End Sub

Считай заново :-))))))

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
Excel программное выделение несмежных ячеек
    #34080719
Ashton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ты зачем один и тот же код переписываешь? Что ты хочешь мне показать? Что надо делать так, как ты или что? Я смотрю мы не понимаем друг друга. Ладно Кирилл из Испании, я не хочу разводить флейм и тратить свое время. Успехов тебе.
...
Рейтинг: 0 / 0
Excel программное выделение несмежных ячеек
    #34080872
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AshtonТы зачем один и тот же код переписываешь?Код разный, просто Ashton этого не видит.

AshtonЧто ты хочешь мне показать? Ashton-у - ничего. Я ему уже сказал - он меня не интересует, он - поток байтов. Я пишу для тех, кто читает.

AshtonЧто надо делать так, как ты или что? Я смотрю мы не понимаем друг друга.Нет. А надо? [вопрос риторический - ответа не требует] Думаю все прояснится, если я скажу, что цитирую я Ashton-а не для того, что бы обратиться к нему, а для того, чтобы любому было ясно о чем речь. Каждый выберет то, что предпочтет.

AshtonЛадно Кирилл из Испании...Найти меня не сложно - я не скрываюсь. Но думаю, что хамит Ashton от того, что по существу ему сказать нечего (надеюсь я не удивлю его тем, что использовать имена там, где используют ники - это удел хамов ? [вопрос риторический - ответа не требует] ).

Диалог Ashton - KL закончен, отныне все пересечения прошу считать монологами.

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel программное выделение несмежных ячеек
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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