Страницы: 1
RSS
Как выделить динамический массив, когда активна одна из его ячеек, офис 365 или 2021
 
Добрый день.
В прилагаемом файле в ячейке B1 имеется формула: =УНИК(A1:A12), то есть теперь диапазон B1:B8 стал динамическим массивом и размер этого массива может меняться исходя из значений ячеек диапазона A1:A12.

Как выделить этот динамический массив, то есть диапазон B1:B8 в ситуации, когда активной ячейкой является одна из ячеек этого самого динамического массива?
То есть исходя из примера, как выделить диапазон B1:B8, когда активна ячейка B5 (или B1 или B7)?

ОТВЕТ:
на VBA: ActiveCell.SpillParent.SpillingToRange.Select
клавишами: Ctrl+A
 
Ctrl+A
 
Ctrl+Shift+стрелка вниз
 
Тимофеев,  спасибо, по сути - да, правильно ))

в vba так можно:
Код
ActiveCell.SpillParent.SpillingToRange.Select
Изменено: Бахтиёр - 23.12.2021 16:27:04
 
Msi2102, вы немного не так поняли.
Изменено: Бахтиёр - 23.12.2021 09:36:02
 
Можно так
Главная -> Найти и выделить -> Выделить группу ячеек...
Изменено: Msi2102 - 23.12.2021 09:18:03
 
ctrl+T или L тоже интересно делает
Изменено: Тимофеев - 23.12.2021 09:20:44
 
Цитата
Msi2102 :  Главная -> Найти и выделить -> Выделить группу ячеек...
Я же в 1-м сообщении написал, что это не действует.
Это действует для диапазонов с формулами массива, введенных Ctrl+Shift+Eter

Цитата
Тимофеев:  ctrl+T или L тоже интересно делает
:)  
Изменено: Бахтиёр - 23.12.2021 09:39:18
 
я всегда нажимаю Ctrl+A
 
Может так попробовать
Код
Activecell.CurrentRegion.Select
 
 
Цитата
Бахтиёр: ActiveCell.SpillParent
у меня в VBA нет таких методов, равно, как и проверки Range.HasSpill — первый раз замечаю что-то похожее на апдейт VBA-модели, но оно ли это?…

Цитата
Евгений Смирнов: Activecell.CurrentRegion
стандартный и проверенный метод выделения текущей области от заданного диапазона. Полный аналог (не сталкивался с расхождениями) ручного Ctrl+A
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
Jack Famous написал: у меня в VBA нет таких методов
они появились с появлением динамических массивов и функций =ФИЛЬТР(), =УНИК(), ...

Цитата
Евгений Смирнов написал:  Activecell.CurrentRegion.Select
не пойдёт, можете проверить в файле из поста №1, он выделит лишнее.

Цитата
Jack Famous написал: Полный аналог
Полный аналог CurrentRegion.Select - это Ctrl+* (проверьте на макрорекордере)
Скрытый текст
Изменено: Бахтиёр - 23.12.2021 17:29:47
 
Цитата
Бахтиёр: они появились с появлением динамических массивов и функций
спасибо - так и думал

Цитата
Бахтиёр: Полный аналог CurrentRegion.Select - это Ctrl+* (проверьте на макрорекордере)
проверил, всё верно
Ctrl+A это "выделить всё" в среде винды и при записи рекордером виден только результат — выделение ячеек. Перепутал, потому что всё время использую Ctrl+A как раз для выделения текущей области и не знал про другое  :D Спасибо!  ;)

Цитата
Бахтиёр: Проверить можно так:
не получилось — в обоих случая выделяет все 3 ячейки  :D
Изменено: Jack Famous - 23.12.2021 17:11:53
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
Jack Famous написал:  не получилось — в обоих случая выделяет все 3 ячейки  
Попробовал на компе, где стоит 2019.

ИМХО: Вывод: нажатие Ctrl+A выделяет текущий массив - это работает только в 365/2021
в старых он выделяет сразу текущую ОБЛАСТЬ (даже если активная ячейка - составная часть массива)
Изменено: Бахтиёр - 23.12.2021 18:10:19
 
Бахтиёр, почему ИМХО пустое?  :D
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
Бахтиёр написал:
ИМХО: Вывод: нажатие Ctrl+A выделяет текущий массив - это работает только в 365/2021
в старых он выделяет сразу текущую ОБЛАСТЬ (даже если активная ячейка - составная часть массива)
Из справки: Сочетания клавиш «CTRL + A» Excel 2002. Выделяет лист целиком.
Excel 2010 Выделяет лист целиком.
Если лист содержит данные, CTRL + A выделяет текущую область.
Повторное нажатие сочетания клавиш CTRL + A позволяет выделить все ячейки листа.
Когда то не было Excel 2021
Код
Range(ActiveCell.End(xlUp), ActiveCell.End(xlDown)).Select

Код
Sub hgjhfg(): Dim Rg1 As Range
Set Rg1 = ActiveCell.CurrentRegion
Rg1.AutoFilter Field:=ActiveCell.Column, Criteria1:="<>"
Set Rg1 = Rg1.SpecialCells(xlCellTypeVisible).Columns(ActiveCell.Column)
ActiveSheet.AutoFilterMode = 0: Rg1.Select
End Sub
 
Цитата
Евгений Смирнов написал:  Когда то не было Excel 2021
Прочитайте пост №1: вопрос был (и ответ уже найден) именно про выделение динамических массивов, которые есть в 365 и 2021 и которых НЕТ в старых версиях. Не понял  что вы хотите сказать этой фразой и сообщением №16.
Изменено: Бахтиёр - 24.12.2021 07:24:52
Страницы: 1
Наверх