powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Выделение сложных областей в Excel
6 сообщений из 6, страница 1 из 1
Выделение сложных областей в Excel
    #32772425
Higher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Короче, вычитал в "Первых шагах", что можно выделять пересечение областей.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Sub Test()
	With Application.Workbooks.Item("Test.xls")
		Worksheets("Лист2").Activate
		Dim HelloRange As Range
		Set HelloRange = Range("A1:A20  A8:D8") 'вот оно!
		HelloRange.Value = "Hello"
	End With
End Sub

У меня задача следующая. Процедуру я уже написал, все работает. Но работает медленно. Потому что последовательно обрабатывает каждую ячейку в выбранной области. Если пользователь выделяет весь лист или допустим несколько целых столбцов, то программа "думает" непозволительно долго.

Задача такова: выбрать из выделенной пользователем области область, которая реально используется. То есть должно быть что-то типа: Range(Selection UsedRange). И как с этим справиться?
...
Рейтинг: 0 / 0
Выделение сложных областей в Excel
    #32772550
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не совсем понятна задача
...
Рейтинг: 0 / 0
Выделение сложных областей в Excel
    #32772727
Higher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, вроде, сформулировал, как мог. Осталось только нарисовать. Пользователь выделяет, допустим, весь лист и запускает макро. А мне его надо программно по рукам ударить, чтобы выделение автоматом переключилось на используемую область (UsedRange). Или, допустим, выделяет три столбца С, D, E, а записи в этих столбцах только до десятой строки. Так вот, мне надо, чтобы моя макра все столбцы не обрабатывала, а только реально занятые. Вся фигня в том, что в help на английском языке href чего найдешь, только то, что и без них понятно...
...
Рейтинг: 0 / 0
Выделение сложных областей в Excel
    #32773036
Processor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Higherмне надо, чтобы моя макра все столбцы не обрабатывала, а только реально занятые.
Попробуй это...
...
Рейтинг: 0 / 0
Выделение сложных областей в Excel
    #32774673
Higher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я справился с ситуацией так:
Код: plaintext
1.
2.
   Dim MyCell As Range
         For Each MyCell In Intersect(Selection, ActiveSheet.UsedRange)
Тут есть одна ошибка. Ексель запоминает последнюю занятую ячейку и весь диапазон от А1 до нее считает UsedRange, даже если диапазон впоследствии становится меньше. Но мне это уже не важно. Делать целую процедуру ради того, чтобы определить реально занятый диапазон, на мой взгляд, еще более громоздко, чем обработать готовый UsedRange.
...
Рейтинг: 0 / 0
Выделение сложных областей в Excel
    #32774965
Processor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мне надо, чтобы моя макра все столбцы не обрабатывала, а только реально занятыеДелать целую процедуру ради того, чтобы определить реально занятый диапазон, на мой взгляд, еще более громоздко, чем обработать готовый UsedRange1. Первое противоречит второму.
2. Процедура (по ссылке) как раз и исправляет ошибку, о которой Вы говорите.
3. Метод Intersect() реализует (примерно) тот же алгоритм, что и Sub Test(), только в компилированном виде.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Выделение сложных областей в Excel
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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