Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 08.01.2016
Сообщений: 39

Остановка диапазона по условию

08.01.2016, 17:19. Показов 1025. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую!
Есть два макроса:
Один соединяет ячейки по две:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Function ТВК4(Ячейка1, Ячейка2)
 
Dim R1 As String
Dim R2 As String
 
R1 = "р. "
R2 = "; "
 
If Ячейка1 = 0 Then a = "-----" Else
If Ячейка1 <> 0 Then a = Ячейка2 & R1 & Ячейка1 & R2
 
ТВК4 = a
 
End Function

Второй собирает данные из этих ячеек в примечание:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Function ТвК2(Диапазон, Ячейка)
 
Dim i As Long
Dim Str As String
 
Dim R As String
 
R = "Фамилия:"
 
Str = Диапазон.Cells(10000)
For i = 2 To Диапазон.Cells.Count
Str = Str & Chr(10) & Диапазон.Cells(i).Value
Next i
 
ТвК2 = Ячейка.AddComment(R & Chr(10) & Str)
 
'предел 256 строк
 
End Function
Проблема:
Второй макрос собирает все ячейки до конца диапазона, а нужно чтобы он останавливался собрав информацию только по одной точке (в примере), т.е. собрал информацию из ячеек от начала диапазона до последнего наименования для данной точки.
Просьба помочь реализовать это в коде.


Пояснения по примеру:
Между концом информации по одной точки и началом другой всегда есть пустая строка.
Вложения
Тип файла: xlsx Пример.xlsx (13.5 Кб, 1 просмотров)
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.01.2016, 17:19
Ответы с готовыми решениями:

Заполнение именованного диапазона данными из другого диапазона по условию: код не работает
Заполняю таблицу с данными о пищевой ценности продуктов. Простейший скрипт, ищущий совпадение в одной таблице (вроде БД), и, если...

Остановка по условию в отладчике
Доброго дня! Как в редакторе VBA сделать точку останова по условию?

Копирование диапазона ячеек по условию
Здравствуйте! Не могу понять почему не работает, что я не так тут делаю: Sub ПримечанияКопирование Dim кн1 As Workbooks ...

2
6082 / 1327 / 195
Регистрация: 12.12.2012
Сообщений: 1,023
08.01.2016, 17:51
Здравствуйте, ЛаннКай,
Поскольку признак пустой строки у вас следующий:

Visual Basic
1
If Ячейка1 = 0 Then a = "-----" Else
То цикл можно остановить следующим образом:

Visual Basic
1
2
3
4
    For i = 2 To Диапазон.Cells.Count
        Str = Str & Chr(10) & Диапазон.Cells(i).Value
        If Диапазон.Cells(i).Value = "-----" Then Exit For
    Next i
Правильно я рассуждаю?

С уважением,
Аксима
1
0 / 0 / 0
Регистрация: 08.01.2016
Сообщений: 39
08.01.2016, 19:11  [ТС]
Да!
То что нужно.
Огромное спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.01.2016, 19:11
Помогаю со студенческими работами здесь

Подбор чисел из диапазона по определенному условию
И снова всем здрасте))))) Опять я со своими баранами. Задача следующая. В excel имеется столбик из чисел, необходимо макросом подобрать...

Заполнение диапазона ячеек в определенной книги по условию
Здравствуйте. Есть книга Ведомости на листе Ведомости проставлены группы и дисциплины и т.п. Вопрос следующий: Как при установке в столбце...

Поиск и копирование именованного диапазона по условию выпадающего списка
Здравствуйте. Хочу попросить помощи в решении одной задачи в Excel 2007.Есть книга с данными затрат по странам (потом будет около 30...

Копирование диапазона ячеек по условию в первом столбце и вывод на печать
Всем привет. Назрел весьма интересный вопрос по копированию диапазона ячеек по условию. У нас имеется таблица с данными сотрудников, для...

Остановка выполнения запроса по условию
Здравствуйте, форумчане. пишу большую хранимую процедуру для сборки данных по таблицам, в самом начале проверяю ошибки следующим запросом ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru