Всем привет. Много тем просмотрел, но пока не могу сообразить как сделать. Необходимо определить последнюю непустую ячейку (в примере 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 18:17:40
Привет!
Сермяжная практика
Изменено:
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: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: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? что видно?
Изменено:
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
|
|||||||
|
|
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 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:11:54
![]()
![]() ![]() Прошу прощения у модераторов за флуд, не удержался, захотелось высказаться
Изменено: |
|||||
|
|
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
Еще раз возвращаюсь к теме. В итоговом варианте использовал строку из примера
ws.Rows(row_Last).EntireRow)), то, что мне необходимо изначально. С вариантом |
||||
|
|
|||
Читают тему