Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Выделение сложных областей в Excel / 6 сообщений из 6, страница 1 из 1
08.11.2004, 14:03
    #32772425
Higher
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выделение сложных областей в Excel
Короче, вычитал в "Первых шагах", что можно выделять пересечение областей.
Код: 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
08.11.2004, 18:44
    #32772550
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выделение сложных областей в Excel
Не совсем понятна задача
...
Рейтинг: 0 / 0
09.11.2004, 08:02
    #32772727
Higher
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выделение сложных областей в Excel
Да, вроде, сформулировал, как мог. Осталось только нарисовать. Пользователь выделяет, допустим, весь лист и запускает макро. А мне его надо программно по рукам ударить, чтобы выделение автоматом переключилось на используемую область (UsedRange). Или, допустим, выделяет три столбца С, D, E, а записи в этих столбцах только до десятой строки. Так вот, мне надо, чтобы моя макра все столбцы не обрабатывала, а только реально занятые. Вся фигня в том, что в help на английском языке href чего найдешь, только то, что и без них понятно...
...
Рейтинг: 0 / 0
09.11.2004, 11:13
    #32773036
Processor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выделение сложных областей в Excel
Higherмне надо, чтобы моя макра все столбцы не обрабатывала, а только реально занятые.
Попробуй это...
...
Рейтинг: 0 / 0
10.11.2004, 09:08
    #32774673
Higher
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выделение сложных областей в Excel
Я справился с ситуацией так:
Код: plaintext
1.
2.
   Dim MyCell As Range
         For Each MyCell In Intersect(Selection, ActiveSheet.UsedRange)
Тут есть одна ошибка. Ексель запоминает последнюю занятую ячейку и весь диапазон от А1 до нее считает UsedRange, даже если диапазон впоследствии становится меньше. Но мне это уже не важно. Делать целую процедуру ради того, чтобы определить реально занятый диапазон, на мой взгляд, еще более громоздко, чем обработать готовый UsedRange.
...
Рейтинг: 0 / 0
10.11.2004, 11:05
    #32774965
Processor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выделение сложных областей в Excel
мне надо, чтобы моя макра все столбцы не обрабатывала, а только реально занятыеДелать целую процедуру ради того, чтобы определить реально занятый диапазон, на мой взгляд, еще более громоздко, чем обработать готовый UsedRange1. Первое противоречит второму.
2. Процедура (по ссылке) как раз и исправляет ошибку, о которой Вы говорите.
3. Метод Intersect() реализует (примерно) тот же алгоритм, что и Sub Test(), только в компилированном виде.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Выделение сложных областей в Excel / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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