С Новым годом! Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.84/316: Рейтинг темы: голосов - 316, средняя оценка - 4.84
19 / 19 / 0
Регистрация: 30.09.2011
Сообщений: 283
1

Выделить диапазон заполненных ячеек

20.12.2012, 13:53. Показов 65408. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день.

помогите пожалуйста сообразить:

как мне выделить диапазон заполненных ячеек в колонке 1:


определяет первую заполненную ячейку:
Visual Basic
1
ActiveSheet.Columns(1).Find("*", , xlFormulas, xlWhole).Select
Определяет последнюю заполненную ячейку:

Visual Basic
1
2
Dim lLastRow As Long
lLastRow = Cells(Rows.Count, 1).End(xlUp).Row
как это совместить и выделить диапазон от первой заполненной ячейки до последней заполненной

пробовал через переменную, но возможно не так что-то прописывал.. (болею, голова совсем уже не варит ))
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.12.2012, 13:53
Ответы с готовыми решениями:

Выделить диапазон ячеек в Excel
Помогите люди добрые! Нужно написать макрос в Excel. Задание следующее - Выделить диапазон ячеек и...

Как выделить диапазон ячеек?
Объясните ламеру как можно вставить в функцию дапазон "DNosaukums" если известны первая и последняя...

Как выделить диапазон ячеек ?
Задача простая, но нигде не могу найти как оформить синтаксис Нужно выделить диапазон из ячеек...

Обработать выделенный диапазон ячеек, результат записать в смежный диапазон
Напишите в среде Excel макрос, который в выделенном диапазоне ячеек должен выполнять заданные...

10
6978 / 2879 / 552
Регистрация: 19.10.2012
Сообщений: 8,765
20.12.2012, 14:05 2
Visual Basic
1
2
3
Sub tt()
Range(ActiveSheet.Columns(1).Find("*", , xlFormulas, xlWhole), Cells(Rows.Count, 1).End(xlUp)).Select
End Sub
1
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,518
20.12.2012, 14:16 3
Вот такой вариант (использую Find, т.к. другие способы учитывают кроме данных ещё что-нибудь, например, наличие границ у ячеек):
Кликните здесь для просмотра всего текста
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Sub Макрос1()
 
    Dim lStart As Long, lEnd As Long
    
    '1. Определение первой ячейки с данными в столбце "A".
    'After:=Cells(Rows.Count, "A") указывает, с какой ячейки начать поиск.
    'Если не указывать, то поиск ведётся с ячейки "A1" и первой просматриватся
    'ячейка "A2". Если данные уже есть в ячейке "A1", то результат
    'будет неправильным. Поэтому нужно указать ячейку, с которой начинается поиск.
    lStart = Columns("A").Find(What:="?", After:=Cells(Rows.Count, "A"), _
        LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByColumns, _
        SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Row
    
    '2. Определение последней ячейки с данными в столбце "A".
    lEnd = Columns("A").Find(What:="?", LookIn:=xlValues, LookAt:=xlPart, _
        SearchOrder:=xlByColumns, SearchDirection:=xlPrevious, _
        MatchCase:=False, SearchFormat:=False).Row
        
    '3. Выделение диапазона с данными в столбце "A".
    Range("A" & lStart & ":A" & lEnd).Select
        
End Sub
2
15153 / 6426 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
20.12.2012, 16:15 4
В некоторых случаях можно так - аналог команды F5 - Выделить - Константы:
Visual Basic
1
Set MyRange = Columns(1).SpecialCells(xlCellTypeConstants)
В диапазон попадут ячейки только с константами, с формулами - не попадут.
Если между заполненными ячейками есть пустые, диапазон будет состоять из нескольких областей.
1
Gorlist
08.07.2013, 23:53 5
При создании данного макроса выскакивает ошибка:
"Run-time error 1004
Application-defined or object-defined error"
Подскажите, пожалуйста, в чем ошибка?

Цитата Сообщение от Скрипт Посмотреть сообщение
Вот такой вариант (использую Find, т.к. другие способы учитывают кроме данных ещё что-нибудь, например, наличие границ у ячеек):
Кликните здесь для просмотра всего текста
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Sub Макрос1()
 
    Dim lStart As Long, lEnd As Long
    
    '1. Определение первой ячейки с данными в столбце "A".
    'After:=Cells(Rows.Count, "A") указывает, с какой ячейки начать поиск.
    'Если не указывать, то поиск ведётся с ячейки "A1" и первой просматриватся
    'ячейка "A2". Если данные уже есть в ячейке "A1", то результат
    'будет неправильным. Поэтому нужно указать ячейку, с которой начинается поиск.
    lStart = Columns("A").Find(What:="?", After:=Cells(Rows.Count, "A"), _
        LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByColumns, _
        SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Row
    
    '2. Определение последней ячейки с данными в столбце "A".
    lEnd = Columns("A").Find(What:="?", LookIn:=xlValues, LookAt:=xlPart, _
        SearchOrder:=xlByColumns, SearchDirection:=xlPrevious, _
        MatchCase:=False, SearchFormat:=False).Row
        
    '3. Выделение диапазона с данными в столбце "A".
    Range("A" & lStart & ":A" & lEnd).Select
        
End Sub
0 / 0 / 0
Регистрация: 23.04.2015
Сообщений: 5
21.03.2017, 23:00 6
А я еще вот так делаю:

PureBasic
1
Range(("A1"), Range("A1").End(xlDown)).Select
0
6978 / 2879 / 552
Регистрация: 19.10.2012
Сообщений: 8,765
22.03.2017, 09:34 7
Цитата Сообщение от dasist Посмотреть сообщение
Range(("A1"), Range("A1").End(xlDown)).Select
странно, но работает...
Почему?
0
3218 / 967 / 223
Регистрация: 29.05.2010
Сообщений: 2,087
22.03.2017, 09:54 8
Цитата Сообщение от Hugo121 Посмотреть сообщение
странно, но работает...
Работает если все ячейки заполнены информацией, иначе до первой незаполненной ячейки
0
879 / 558 / 291
Регистрация: 21.11.2012
Сообщений: 1,553
22.03.2017, 11:36 9
Скрипт,

а можете объяснить как это работает? что значит, к примеру, What:="?"
0
0 / 0 / 0
Регистрация: 23.04.2015
Сообщений: 5
22.03.2017, 11:43 10
Поначалу я тоже удивился, что работает.
0
6978 / 2879 / 552
Регистрация: 19.10.2012
Сообщений: 8,765
22.03.2017, 12:47 11
Цитата Сообщение от toiai Посмотреть сообщение
Работает если все ячейки заполнены информацией,
я не о том. Я о ("A1")
0
22.03.2017, 12:47
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.03.2017, 12:47
Помогаю со студенческими работами здесь

Задать максимальное количество заполненных ячеек в строке
Как задать свое количество заполненных ячеек в строке, чтобы заполнение ячеек символами...

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

Подсчитать количество заполненных ячеек диапазона со значениями, большими, чем единица
Народ, помогите поправить следующий код: Cells(8 + A4444, i + 108) =...

Выделить отфильтрованный диапазон
Надо выделить отфильтрованный диапазон, что бы затем скопировать или удалить. Проблема в том, что...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Реализация передвижения персонажа в Unity3d на C#
InfoMaster 10.01.2025
Реализация передвижения персонажа в Unity3D начинается с правильной настройки проекта. Этот этап критически важен для создания отзывчивого и плавного управления. Рассмотрим основные шаги для создания. . .
Docker: руководство для начинающих
InfoMaster 10.01.2025
В современном мире разработки программного обеспечения контейнеризация стала неотъемлемой частью процесса создания и развертывания приложений. Docker, как ведущая платформа контейнеризации, произвела. . .
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
Что такое NullReferenceEx­­­ception и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
Использование GraphQL в Go (Golang)
InfoMaster 08.01.2025
Go (Golang) является одним из наиболее популярных языков программирования, используемых для создания высокопроизводительных серверных приложений. Его архитектурные особенности и встроенные. . .
Что лучше использовать при создании класса в Java: сеттеры или конструктор?
Alexander-7 08.01.2025
Вопрос подробнее: На вопрос: «Когда одновременно создаются конструктор и сеттеры в классе – это нормально?» куратор уточнил: «Ваш класс может вообще не иметь сеттеров, а только конструктор и геттеры. . .
Как работать с GraphQL на TypeScript
InfoMaster 08.01.2025
Введение в GraphQL и TypeScript В современной разработке веб-приложений GraphQL стал мощным инструментом для создания гибких и эффективных API. В сочетании с TypeScript, эта технология. . .
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru