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

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

Устанавливает выделение только на последней ячейке B7.
(Конечно можно исхитриться вместо выделения предложить например, заполнение фона ячейки цветом, типа
ActiveSheet.Cells(i, j).Interior.ColorIndex = 6
Но потом замучаешься снимать это же заполнение.)
...
Рейтинг: 0 / 0
17.05.2006, 14:10:26
    #33732621
Ashton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel программное выделение несмежных ячеек
Код: 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
16.10.2006, 22:16:34
    #34058671
Ivan33
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel программное выделение несмежных ячеек
Код: 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
17.10.2006, 17:14:58
    #34061047
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel программное выделение несмежных ячеек
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
25.10.2006, 11:33:04
    #34079458
Ashton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel программное выделение несмежных ячеек
Самым простым вариантом из всех, наверное, все-таки будет, как я написал.

Зачем Select? Автор просил выделить.
...
Рейтинг: 0 / 0
25.10.2006, 12:07:05
    #34079613
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel программное выделение несмежных ячеек
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
25.10.2006, 14:34:23
    #34080325
Ashton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel программное выделение несмежных ячеек
Это вопрос вкуса. Я могу в три, могу в одну. Я предпочитаю делать как написал, ты в одну строчку.

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

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

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

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

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

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

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

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

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

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


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