Всем привет. Много тем просмотрел, но пока не могу сообразить как сделать. Необходимо определить последнюю непустую ячейку (в примере J38). Пробовал по разному, но все время упираюсь в последний столбец. Или же как определить последний заполненный столбец на строке ниже (видимо другого диапазона). Извините, не знаю, как грамотно изложить. Пример прилагаю. Заранее благодарен.
Поиск последней заполненной ячейки VBA
|
07.03.2019 13:41:41
|
|
|
|
|
|
07.03.2019 13:42:31
Пример
|
|
|
|
|
|
07.03.2019 14:36:53
Спасибо. Попробую
|
|
|
|
|
|
07.03.2019 16:36:40
Еще раз спасибо. Все отлично работает.
|
|
|
|
|
|
07.03.2019 17:21:11
в Вашем файле напишите в В99
какая последняя определилась? на самом деле все сильно зависит от задачи, которую Вы решаете только после того, как сможете описать задачу может быть получено ее решение
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
|
|
|
|
|
|
07.03.2019 17:31:28
Вот здесь я описывал несколько вариантов определения последней ячейки:
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
|
|
|
|
|
|
07.03.2019 17:45:46
Дмитрий(The_Prist) Щербаков, давно хотел спросить, что я делаю не так со способом 4, описанным в Вашей статье? Код взят с Вашего сайта. В файле данный метод вообще непонятно что определяет
Изменено: - 07.03.2019 17:47:30
Согласие есть продукт при полном непротивлении сторон
|
|
|
|
|
|
07.03.2019 18:17:40
Привет!
Сермяжная практика
Изменено: - 07.03.2019 18:26:33
PHP Битрикс24 REST API, Google Apps Script, Excel VBA Windows Mac
|
|||||
|
|
|
|
07.03.2019 19:01:06
давайте рассмотрим ситуацию
если на листе заполнено две ячейки А2 и XFD1 вопрос, какая последняя заполненная ячейка? А2? XFD1? может XFD2? (фактически-то она ПУСТАЯ, т.е. НЕ ЗАПОЛНЕННАЯ и очень странно когда пустая ячейка претендует на роль последней заполненной) так какая? ответ простой: пока не определено понятие "последняя заполненная ячейка" на роль последней заполненой в данном листе есть 3 претендента а стоит только определиться у задачи тут же появиться 1 конкретный адрес одна из основ программирования: это конкретность результата! результат работы программы это итог вычислений или сообщение об ошибке в случае если результат не может быть вычислен. и когда вопрос стоит КАКАЯ ПОСЛЕДНЯЯ ЗАОПЛНЕННАЯ ответом должен быть ЕЕ АДРЕС, а не три на выбор
Изменено: - 07.03.2019 19:03:21
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
|
|
|
|
|
|
07.03.2019 19:13:45
Ігор Гончаренко, Игорь, Ну реально хватит уже. Если конкретно названия темы, то полностью согласен, так как она не на 100% отражает то что конкретно хотел ТС. Если смотреть файл, то все там понятно и никаких висящих в воздухе ячеек не будет.
По вопросам из тем форума, личку не читаю.
|
|
|
|
|
|
07.03.2019 19:22:36
PHP Битрикс24 REST API, Google Apps Script, Excel VBA Windows Mac
|
|||
|
|
|
|
07.03.2019 19:47:58
если смотреть в файл на на роль последней заполненной претендуют 3 ячейки: J38 O19 и наконец O38 а какая из них последняя заполненая? Миша, если последня заполненная J38, то почему правее ее еще масса заполненных ячеек? может быть те ячейки войдут в диапазон A1:J38? или они вне его, они за рамками диапазона от первой ячейки листа до последней заполенной почему на листе оказалась куча ячеек за пределами диапазона А1:ПоследняяЗаполненная? обьясните мне - может они не заполнены? - или может последняя заполненная не последняя??? а есть более другая еще последнее? и я здесь не о конкретных решениях, я здесь о конкретности формулировок и о том, что выполнение конкретной программы (макроса) предполагает получение конкретного результата или сообщение об ошибке, если результат не может быть вычислен
Изменено: - 07.03.2019 19:49:56
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
|
|||
|
|
|
|
07.03.2019 19:54:09
почему они проигнорированы кодом? может K19, L19, O19 - не заполнены?
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
|
|||
|
|
|
|
07.03.2019 19:58:38
Ігор Гончаренко, мы часто кидаемся в крайности, то требуем пример который на 100% отражает реальность, то просим оставить только то, что необходимо для решения задачи. В данном конкретном случае прослеживалось что нужно и результат по всей видимости ТС устроил. Если говорить об общем случае, то без дополнительных вводных все равно, что брать квадратный корень из -2 , без упоминания о мнимой части.
По вопросам из тем форума, личку не читаю.
|
|
|
|
|
|
07.03.2019 20:10:42
вот, и я об этом же
пока нет условий задачи - решать нечего! пока не определено понятие "последняя заполненная ячейка" - ее не возможно отыскать! тут кто-то еще согласен с этим утверждением? или у меня серьезные сбои в логике?
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
|
|
|
|
|
|
07.03.2019 20:57:01
И индекс ячеек тоже так делает. И For each. Так что Вас двое (с логикой), а нас четверо :-).
PHP Битрикс24 REST API, Google Apps Script, Excel VBA Windows Mac
|
|||||
|
|
|
|
07.03.2019 20:58:32
Я согласен на 100% !!! Прежде чем о чем-то спорить, нужно договориться о предмете спора (сказал кто-то и очень давно, но очень верно сказал!)
|
|
|
|
|
|
07.03.2019 21:27:53
и по поводу For Each пишем а А1 1, в В1 2, в С1 3, в А2 4, в В2 5..., в С3 9 выполняем:
а потом это
смотрим в окно Immediate? что видно?
Изменено: - 09.03.2019 11:19:24
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
|
|||||||
|
|
|
|
07.03.2019 21:28:57
Соратники, я прекрасно понял о чем Игорь,
Без доп. условий, какой адрес последней заполненной ячейки и как определить её? Другое дело что это вопрос не этой темы,
По вопросам из тем форума, личку не читаю.
|
|
|
|
|
|
07.03.2019 21:30:02
Inexsu, доброго вечера! Проблема не в условиях задачи в примере, а в названии темы, отсюда и спор и возник
|
|
|
|
|
|
07.03.2019 21:34:21
PHP Битрикс24 REST API, Google Apps Script, Excel VBA Windows Mac
|
|||
|
|
|
|
07.03.2019 21:43:56
замечание принято))
код стал немного сложнее (но, надеюсь, разберетесь и результаты теперь на листе)
Изменено: - 07.03.2019 21:58:33
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
|
|||
|
|
|
|
07.03.2019 22:16:10
PHP Битрикс24 REST API, Google Apps Script, Excel VBA Windows Mac
|
|||
|
|
|
|
07.03.2019 22:22:02
|
|
|
|
|
|
07.03.2019 22:39:05
Inexsu, ну это Ваше видение, а что по этому поводу скажут японцы или израильтяне, которые привыкли к другому направлению письма?
Вы отвечаете на вопрос о максимальном индексе столбца в последней заполненной строке. Интересовать может иное, вплоть до обратного. По мнению Excel, For each in Range даст тоже с4, а вот тот же for each in Array скажет что это D3. Еще раз, будут граничные условия - будет однозначный ответ, а так - гипотез может быть сколь угодно много.
По вопросам из тем форума, личку не читаю.
|
|
|
|
|
|
07.03.2019 23:09:10
For Each - это я просто хотел сказать что он не самый надежный союзник в этом диспуте
у меня был еще другой вопрос: отмечаем диапазон от ПервойЯчейки до ПоследнейЗаполненой не смущает что за пределами этого диапазона осталось еще много заполненых ячеек, может та, ПоследняяЗаполненная, не такая уже и последняя если снаружи, за ней, еще куча заполненых? и вообще все о чем я написал в этой теме: это не попытка анализировать или критикорвать чей-то код это замечание о том что как можно искать последюю заполненную ячейку, если не определено что такое "последняя заполненная ячейка" как в старом анекдоте: - дорогая, представляешь все, что мы нашу долгую супружескую жизнь называли оргазмом, оказывается называется астма!
Изменено: - 07.03.2019 23:10:19
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
|
|
|
|
|
|
07.03.2019 23:11:54
Прошу прощения у модераторов за флуд, не удержался, захотелось высказаться
Изменено: - 07.03.2019 23:18:35
|
|||||
|
|
|
|
08.03.2019 09:44:37
Всем привет. Я видимо неправильно создал тему (название). Вообщем постараюсь объяснить. Есть прайс лист с картинками(часть файла прилагал выше). По нажатии кнопки вставить, происходит поиск картинок в нужной папке, сжатие найденных до определенного размера и вставка в ячейки (A1, F1, K1, A20, F20 и т.д.) циклом. Далее картинки подписываются пользователем (A19, B19, E19 и т.д.). Через некоторое время картинки в папке меняются и мне необходимо что бы по кнопке "Вставить", вставка началась со следующей ячейки после той, где есть подписи (для примера: подпись в ячейках F38, G38, J38, а картинки начинают вставляться в K20 и т.д.). Я надеюсь понятно объяснил. Если нет постараюсь дополнить. Я в VBA практически "0"(занимался Pascal-ем), поэтому стараюсь делать все по простому, как знаю.
|
|
|
|
|
|
08.03.2019 19:40:19
Еще раз возвращаюсь к теме. В итоговом варианте использовал строку из примера (col_Last = Диап_Столбец_Крайний( _
ws.Rows(row_Last).EntireRow)), то, что мне необходимо изначально. С вариантом , тоже получилось, но на пару строк побольше. Всем огромное спасибо за помощь. Тему можно закрыть. |
||||
|
|
|
|||
Читают тему