Здравствуйте, уважаемые форумчане!
Я действительно долго искал ответ на свой вопрос здесь и на других ресурсах, но видимо делал это плохо, так как не нашел ничего даже похожего.
Суть проблемы:
Есть отфильтрованная таблица с данными. Пользователь выбирает произвольный диапазон из этой таблицы(без Ctrl).
Это необходимо для определения строк, которые впоследствии будут обработаны(соответственно, ширина выделения(кол-во столбцов) значения не имеет).
Результат действий пользователя я получаю из аргумента Target события SelectionChange, хотя можно использовать и Selection, так как в этот момент он ссылается на этот же диапазон.
Но, при обращении к этому диапазону, выясняется, что он является непрерывным, т.е. содержит в том числе отфильтрованные строки.
Предварительное использование метода Copy, не меняет ситуацию.
Обращение к свойству Areas также бессмысленно, т.к. он там один.
У меня есть два способа решения проблемы:
1. Сравнивать полученное выделение с исходной таблицей на предмет, скрытых строк.
2. Ставить событие SheetChange, делать вставку, а потом Application.Undo и вот тогда да, событие вызывается столько раз сколько "кусочков" есть в исходном диапазоне.
Однако мне они видятся костылями, особенно второй, а хочется чего-то попроще(понадежней).
Пожалуйста, подскажите, есть ли возможность получить фактически выбранный диапазон?
Я действительно долго искал ответ на свой вопрос здесь и на других ресурсах, но видимо делал это плохо, так как не нашел ничего даже похожего.
Суть проблемы:
Есть отфильтрованная таблица с данными. Пользователь выбирает произвольный диапазон из этой таблицы(без Ctrl).
Это необходимо для определения строк, которые впоследствии будут обработаны(соответственно, ширина выделения(кол-во столбцов) значения не имеет).
Результат действий пользователя я получаю из аргумента Target события SelectionChange, хотя можно использовать и Selection, так как в этот момент он ссылается на этот же диапазон.
Но, при обращении к этому диапазону, выясняется, что он является непрерывным, т.е. содержит в том числе отфильтрованные строки.
Предварительное использование метода Copy, не меняет ситуацию.
Обращение к свойству Areas также бессмысленно, т.к. он там один.
У меня есть два способа решения проблемы:
1. Сравнивать полученное выделение с исходной таблицей на предмет, скрытых строк.
2. Ставить событие SheetChange, делать вставку, а потом Application.Undo и вот тогда да, событие вызывается столько раз сколько "кусочков" есть в исходном диапазоне.
Однако мне они видятся костылями, особенно второй, а хочется чего-то попроще(понадежней).
Пожалуйста, подскажите, есть ли возможность получить фактически выбранный диапазон?