Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.92/74: Рейтинг темы: голосов - 74, средняя оценка - 4.92
 Аватар для Gepar
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517

Сохранить выбранный диапазон в Excel в переменную

05.12.2011, 02:15. Показов 15646. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно как-то сохранить выбранный диапазон в глобальную переменную чтобы потом его использовать.
Суть в чём: я написал макрос который красит ячейки и вот я хочу чтобы последнее действие можно было отменять.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Dim Диапазон As Variant
Dim ThemeColorHot As Integer 'код цвета
Dim ThemeColorCold As Integer 'код цвета
 
Public Sub PaintCells()
    'debug
    ThemeColorHot = 6
    ThemeColorCold = 5
    '
    
    Dim aCell As Range
    Диапазон = Application.Selection
   
    For Each aCell In Application.Selection
        If IsNumeric(aCell) And Not IsEmpty(aCell) Then 'в ячейке числовое значение
            Select Case aCell
            '...различные действия
И теперь хочу сделать программу что будет возвращать назад прозрачный цвет ячеек
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Public Sub ReturnFirstState()
    Dim aCell As Range
 
    For Each aCell In Диапазон 'Object required
        If IsNumeric(aCell) And Not IsEmpty(aCell) Then 'ячейка вероятно была покрашена макросом
            With aCell.Interior
                .Pattern = xlNone
                .TintAndShade = 0
                .PatternTintAndShade = 1
            End With
        End If
    Next
End Sub
Но проблема в том что Диапазон мой чего-то не сохраняет значение что было в Application.Selection, более того, даже если я напишу так
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Public Sub PaintCells()
    'debug
    ThemeColorHot = 6
    ThemeColorCold = 5
    '
    
    Dim aCell As Range
    Диапазон = Application.Selection
   
    For Each aCell In Диапазон
        If IsNumeric(aCell) And Not IsEmpty(aCell) Then 'в ячейке числовое значение
            Select Case aCell
            '...различные действия
то тоже получу ту же самую ошибку.
Подскажите как лучше сделать.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.12.2011, 02:15
Ответы с готовыми решениями:

Сохранить диапазон в переменную
Доброго времени суток! Подскажите как правильно реализовать: Что то типа настроек,что и откуда должно скрываться и отображаться Есть...

Excel. Указать диапазон в формуле используя переменную
Доброе утро! Макрос копирует данные со страницы и создает по ним сводную таблицу и диаграмму. Но создает ее по выбранному диапазону...

Как проверить, что выбранный диапазон ячеек пуст
Такой вопрос: есть такой код: Dim r As Range With Sheets("data1").Columns(Target.Column - 1).Find(Target.Value, LookAt:=xlWhole) ...

22
1703 / 190 / 19
Регистрация: 20.11.2011
Сообщений: 281
07.12.2011, 03:21
Студворк — интернет-сервис помощи студентам
Мне все-же кажется, что Вы лишние движения делаете. Вот это:
Visual Basic
1
2
    Диапазон.Select
    Call PaintCells
Зачем выделять диапазон? Обрабатывайте его без выделения. Так быстрей и проще. И меньше морганий. И не важно на каком он листе. Тогда и Ваше текущее выделение никуда не денется.
0
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
07.12.2011, 10:02
Цитата Сообщение от Gepar Посмотреть сообщение
If Диапазон.Parent <> Target.Parent Then Exit Sub 'объект не поддерживает это свойство или метод
Visual Basic
1
If Not Диапазон.Parent Is Target.Parent Then Exit Sub
1
1703 / 190 / 19
Регистрация: 20.11.2011
Сообщений: 281
07.12.2011, 10:17
Ну и Target.Parent вычислять в этом случае не надо:
Visual Basic
1
If Not Диапазон.Parent Is sh Then Exit Sub
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.12.2011, 10:17

Как деактивировать ячейку, не потеряв при этом выбранный диапазон
Здравствуйте! Нужна помощь. Но основе выбранного (вручную) диапазона нужно построить график с помощью средств VBA. Если диапазон...

Как попросить макрос обрабатывать только выбранный диапазон, а не весь документ
Здравствуйте! Помогите, пожалуйста, переделать макрос, чтобы он работал только с выбранным участком вордовского текста, а не со всем...

Изменить диапазон на переменную, как?
Привет Всем! :K55, :E55, :F55, :I55, :H55 эти диапазоны всегда изменяются. Можно как то заменить их переменой, или изменять саму цифру...

Как объявить переменную и записать в нее диапазон значений
Добрый день подскажите пожалуйста. у меня есть макрос. его суть: поиск выбранного значения из КомбоБокса в диапазоне B1:B12 ...

Перемножить диапазон на число и сохранить в файл под собственным именем
Добрый день, помогите пожалуйста новичку научиться работать с VBA в Office 2010. Стоит задача генерации индивидуальных...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru