![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 05.05.2009
Сообщений: 9
|
![]()
Добрый день!
Помогите решить следующую задачу. Нужно из ячейки "В1" запустить следующий цикл: 1. Найти последнюю непустую ячейку в столбце "B", при условии, что до последней непустой ячейки, в данном столбце уже есть пустые ячейки.(В данном примере ячейка "В10"). 2. Перейти на столбец "А" на ячейку расположенную на одной строке с найденой до этого ячейкой.(В данном примере ячейка "А10"). 3. Определить колличество непустых ячеек в столбце "А", ниже последней найденой ячейкой ("А10"). 4. Полученное значение занести в ячейку "В1". (В данном примере должно получиться число 5). Дополнительно, при появлении новой последней непустой ячейки в солбце "В", необходимо снова и снова запускать весь цикл с начала. Пример прилагается Последний раз редактировалось SolexVK; 05.05.2009 в 20:05. |
![]() |
![]() |
![]() |
#2 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
![]()
Правой кнопкой на ярлычке листа, выбираем пункт ИСХОДНЫЙ ТЕКСТ
В открывшееся окно вставляем код: Код:
__Полезные надстройки для Excel. Парсинг сайтов и файлов.
![]() Последний раз редактировалось EducatedFool; 05.05.2009 в 19:03. |
![]() |
![]() |
![]() |
#3 |
Регистрация: 05.05.2009
Сообщений: 9
|
![]()
Спасибо!
Всё работает, при условии, что в столбце "В" вписываем числа. Но возможно я не совсем корректно обьяснил, что мне нужно. В столбце "В" не числа, а значения формул. В этом случае система не работает. И ещё, как сделать так, что бы это работало и для остальных столбцов? |
![]() |
![]() |
![]() |
#4 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
![]()
Замените прежний код на такой:
Код:
|
![]() |
![]() |
![]() |
#5 |
Регистрация: 05.05.2009
Сообщений: 9
|
![]()
Огромное спасибо!!!
теперь всё работает отлично. |
![]() |
![]() |
![]() |
#6 |
Регистрация: 05.05.2009
Сообщений: 9
|
![]()
Есть ещё вопрос.
Если вся таблица начинается не с первой строки, а к примеру с 8. Как сделать так, что бы код работал и при этих условиях? |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 03.04.2009
Сообщений: 412
|
![]()
Попробуй исправить Cells(1, i) на Cells(8, i)
|
![]() |
![]() |
![]() |
#8 |
Регистрация: 05.05.2009
Сообщений: 9
|
![]()
Спасибо! Боюсь показаться навязчивым, но прошу ответить ещё на один вопрос.
Если в столбцах таблицы есть столбцы с пустыми ячейками, то код выдаёт почему-то отрицательные и неверные значения. Что делать в этом случае? За ранее благодарен. |
![]() |
![]() |
![]() |
#9 | |||
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
![]() Цитата:
Цитата:
Макрос тоже должен работать? Вместо того, чтобы писать все эти "если", лучше бы один раз чётко сформулировали задание. Цитата:
Где исчерпывающее описание алгоритма макроса для таких случаев? К примеру, в 5-м столбце числа идут до 25-й строки, а в 1-м столбце - только до 18-й. И что в этом случае должен выдать макрос? Макрос всё делает правильно - из 18 вычитает 25 (в правильно заполненных столбцах этот алгоритм даёт верный результат), и пишет в ячейку отрицательное значение. Вы же не говорили, что должно быть в таком случае записано в ячейку... Или Вы думаете, что нам нравится по сотне раз переписывать один и тот же макрос? |
|||
![]() |
![]() |
![]() |
#10 |
Регистрация: 05.05.2009
Сообщений: 9
|
![]()
Уважаемый EducatedFool - вы правы во всех описаных претензиях. Я действительно был не прав, постоянно добавляя новые условия для выполнения кода.
Однако при всём уважении, представленный вами код не работает корректно, в случае выпадения нуля в столбце "А". Поскажите, что можно сделать в данном случае. Пример я приложил Последний раз редактировалось SolexVK; 06.05.2009 в 10:15. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
определить все простые числа не превосходящие заданного N QBasic | werus | Помощь студентам | 4 | 23.04.2009 13:32 |
Помогите с задачей: определить все про числа от 1 до n | laneen | Помощь студентам | 1 | 26.02.2009 09:56 |
Даны числа а1, a2, …, а10. Определить сумму их квадратов. | Maks:// | Помощь студентам | 1 | 22.01.2009 15:24 |
Определить, является ли заданная строка правильной записью вещественного числа | Sergik1977 | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 18.10.2007 16:53 |