Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Выбрать первую пустую ячейку после таблицы - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Выбрать первую пустую ячейку после таблицы
mikaelw Дата: Вторник, 16.09.2014, 16:24 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 179
Репутация: 1 ±
Замечаний: 20% ±

Excel 2010, 2013, 2016
Всем доброго времени суток!

Я пытаюсь изучить Ексель и VBA(надеюсь я пишу в правильный раздел).
"Удивительно, но подсел немного"

Прилагаю файл.

Задача:
После выполнения макроса нужно чтобы выбиралась ячейка в столбце А первая пустая(после таблицы).
Для определения ее использую переменную.
Думаю что проблема в этом.

З.Ы. посмотрите код может кто увидит еще косяки.

PPS. В файле таблицы исходники до выполнения макроса.
К сообщению приложен файл: 16092011622-.xlsm (51.0 Kb)
 
Ответить
СообщениеВсем доброго времени суток!

Я пытаюсь изучить Ексель и VBA(надеюсь я пишу в правильный раздел).
"Удивительно, но подсел немного"

Прилагаю файл.

Задача:
После выполнения макроса нужно чтобы выбиралась ячейка в столбце А первая пустая(после таблицы).
Для определения ее использую переменную.
Думаю что проблема в этом.

З.Ы. посмотрите код может кто увидит еще косяки.

PPS. В файле таблицы исходники до выполнения макроса.

Автор - mikaelw
Дата добавления - 16.09.2014 в 16:24
alex1248 Дата: Вторник, 16.09.2014, 16:57 | Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 384
Репутация: 71 ±
Замечаний: 0% ±

Excel 2007, 2010
mikaelw, наверное, так.
Только выбирается не первая пустая, а вторая, поскольку в первой в столбцах правее есть значения.
К сообщению приложен файл: 16092011622-111.xlsm (52.6 Kb)


skype alex12481632
Qiwi +79276708519
 
Ответить
Сообщениеmikaelw, наверное, так.
Только выбирается не первая пустая, а вторая, поскольку в первой в столбцах правее есть значения.

Автор - alex1248
Дата добавления - 16.09.2014 в 16:57
mikaelw Дата: Вторник, 16.09.2014, 17:13 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 179
Репутация: 1 ±
Замечаний: 20% ±

Excel 2010, 2013, 2016
Воп
Только выбирается не первая пустая, а вторая, поскольку в первой в столбцах правее есть значения.


Спасибо, но нужно выбирать именно 1-ую, тк итоги подведенные не нужно
следовательно: Cells(Cells(Rows.Count, 1).End(xlUp).Row + 1, 1).Select

И вопрос все-таки в начало

В модуле пишу отформатировать ячейки диапазона от B2 до конца таблицы(в данном случае B41)

ActiveSheet.Range("B2:B" & lLastRow).WrapText = True

а по факту форматирует на диапазоне B2:B46..

почему?
 
Ответить
СообщениеВоп
Только выбирается не первая пустая, а вторая, поскольку в первой в столбцах правее есть значения.


Спасибо, но нужно выбирать именно 1-ую, тк итоги подведенные не нужно
следовательно: Cells(Cells(Rows.Count, 1).End(xlUp).Row + 1, 1).Select

И вопрос все-таки в начало

В модуле пишу отформатировать ячейки диапазона от B2 до конца таблицы(в данном случае B41)

ActiveSheet.Range("B2:B" & lLastRow).WrapText = True

а по факту форматирует на диапазоне B2:B46..

почему?

Автор - mikaelw
Дата добавления - 16.09.2014 в 17:13
alex1248 Дата: Вторник, 16.09.2014, 17:28 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 384
Репутация: 71 ±
Замечаний: 0% ±

Excel 2007, 2010
mikaelw, попробуйте lLastRow рассчитывать таким образом:
[vba]
Код
lLastRow = Cells(Rows.Count, 1).End(xlUp).Row
[/vba]


skype alex12481632
Qiwi +79276708519


Сообщение отредактировал alex1248 - Вторник, 16.09.2014, 17:29
 
Ответить
Сообщениеmikaelw, попробуйте lLastRow рассчитывать таким образом:
[vba]
Код
lLastRow = Cells(Rows.Count, 1).End(xlUp).Row
[/vba]

Автор - alex1248
Дата добавления - 16.09.2014 в 17:28
mikaelw Дата: Вторник, 16.09.2014, 17:39 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 179
Репутация: 1 ±
Замечаний: 20% ±

Excel 2010, 2013, 2016
lLastRow = Cells(Rows.Count, 1).End(xlUp).Row

Теперь он концом таблицы считает конец листа.

На команду
MsgBox (lLastRow)

выдает значение 65536(обрабатываю другой файл xls)

почему?
 
Ответить
Сообщение
lLastRow = Cells(Rows.Count, 1).End(xlUp).Row

Теперь он концом таблицы считает конец листа.

На команду
MsgBox (lLastRow)

выдает значение 65536(обрабатываю другой файл xls)

почему?

Автор - mikaelw
Дата добавления - 16.09.2014 в 17:39
alex1248 Дата: Вторник, 16.09.2014, 17:46 | Сообщение № 6
Группа: Проверенные
Ранг: Обитатель
Сообщений: 384
Репутация: 71 ±
Замечаний: 0% ±

Excel 2007, 2010
Странно, у меня в окне Immediate при активном Sheet1 (2) выдает
? Cells(Rows.Count, 1).End(xlUp).Row
41

Посмотрю еще не спеша. <_<

P.S. И MsgBox lLastRow только что попробовал, тоже 41 выдало, правда, на следующем листе.


skype alex12481632
Qiwi +79276708519


Сообщение отредактировал alex1248 - Вторник, 16.09.2014, 17:47
 
Ответить
СообщениеСтранно, у меня в окне Immediate при активном Sheet1 (2) выдает
? Cells(Rows.Count, 1).End(xlUp).Row
41

Посмотрю еще не спеша. <_<

P.S. И MsgBox lLastRow только что попробовал, тоже 41 выдало, правда, на следующем листе.

Автор - alex1248
Дата добавления - 16.09.2014 в 17:46
alex1248 Дата: Вторник, 16.09.2014, 17:52 | Сообщение № 7
Группа: Проверенные
Ранг: Обитатель
Сообщений: 384
Репутация: 71 ±
Замечаний: 0% ±

Excel 2007, 2010
Вот файл с макросом, 1-й лист обработан. Вроде, всё верно.
К сообщению приложен файл: 16092011622-112.xlsm (52.5 Kb)


skype alex12481632
Qiwi +79276708519
 
Ответить
СообщениеВот файл с макросом, 1-й лист обработан. Вроде, всё верно.

Автор - alex1248
Дата добавления - 16.09.2014 в 17:52
mikaelw Дата: Вторник, 16.09.2014, 18:03 | Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 179
Репутация: 1 ±
Замечаний: 20% ±

Excel 2010, 2013, 2016
странно!

Я MsgBox прямо в модуль после получения переменных добавил.
Новый файл
К сообщению приложен файл: 16092011622-222.xlsm (51.2 Kb)
 
Ответить
Сообщениестранно!

Я MsgBox прямо в модуль после получения переменных добавил.
Новый файл

Автор - mikaelw
Дата добавления - 16.09.2014 в 18:03
mikaelw Дата: Вторник, 16.09.2014, 18:08 | Сообщение № 9
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 179
Репутация: 1 ±
Замечаний: 20% ±

Excel 2010, 2013, 2016
Вот файл с макросом, 1-й лист обработан. Вроде, всё верно.
К сообщению приложен файл: 16092011622-112.xlsm(53Kb)


Перезапуск Екселя решил проблему!
 
Ответить
Сообщение
Вот файл с макросом, 1-й лист обработан. Вроде, всё верно.
К сообщению приложен файл: 16092011622-112.xlsm(53Kb)


Перезапуск Екселя решил проблему!

Автор - mikaelw
Дата добавления - 16.09.2014 в 18:08
alex1248 Дата: Вторник, 16.09.2014, 18:10 | Сообщение № 10
Группа: Проверенные
Ранг: Обитатель
Сообщений: 384
Репутация: 71 ±
Замечаний: 0% ±

Excel 2007, 2010
странно!

Я MsgBox прямо в модуль после получения переменных добавил.

И что у вас получилось?
У меня вышли сообщения 41 и 1.

Ну всё, разобрались?


skype alex12481632
Qiwi +79276708519


Сообщение отредактировал alex1248 - Вторник, 16.09.2014, 18:11
 
Ответить
Сообщение
странно!

Я MsgBox прямо в модуль после получения переменных добавил.

И что у вас получилось?
У меня вышли сообщения 41 и 1.

Ну всё, разобрались?

Автор - alex1248
Дата добавления - 16.09.2014 в 18:10
Gustav Дата: Вторник, 16.09.2014, 18:44 | Сообщение № 11
Группа: Админы
Ранг: Участник клуба
Сообщений: 2770
Репутация: 1140 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Спасибо, но нужно выбирать именно 1-ую, тк итоги подведенные не нужно
следовательно: Cells(Cells(Rows.Count, 1).End(xlUp).Row + 1, 1).Select

На заметку на будущее. Вместо:
[vba]
Код
Cells(Cells(Rows.Count, 1).End(xlUp).Row + 1, 1)
[/vba]
с тем же эффектом, но гораздо прозрачнее:
[vba]
Код
Cells(Rows.Count, 1).End(xlUp).Offset(1)
[/vba]
или
[vba]
Код
Cells(Rows.Count, "A").End(xlUp).Offset(1)
[/vba]


МОИ: Ник, Tip box: 41001663842605

Сообщение отредактировал Gustav - Вторник, 16.09.2014, 18:48
 
Ответить
Сообщение
Спасибо, но нужно выбирать именно 1-ую, тк итоги подведенные не нужно
следовательно: Cells(Cells(Rows.Count, 1).End(xlUp).Row + 1, 1).Select

На заметку на будущее. Вместо:
[vba]
Код
Cells(Cells(Rows.Count, 1).End(xlUp).Row + 1, 1)
[/vba]
с тем же эффектом, но гораздо прозрачнее:
[vba]
Код
Cells(Rows.Count, 1).End(xlUp).Offset(1)
[/vba]
или
[vba]
Код
Cells(Rows.Count, "A").End(xlUp).Offset(1)
[/vba]

Автор - Gustav
Дата добавления - 16.09.2014 в 18:44
_Boroda_ Дата: Вторник, 16.09.2014, 18:53 | Сообщение № 12
Группа: Админы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
а по факту форматирует на диапазоне B2:B46..
почему?

Дело в том, что Вы поудаляли перед этим несколько строк. До удаления сочетание Контрл Енд (это Ваш xlLastCell) выделяло Вам ячейку Т46. После удаления строк все равно Контрл Енд будет выдавать Вам Т46. До того момента, пока Вы не обновите информацию файла о самом себе. Например
Перезапуск Екселя решил проблему!

А проще в коде перед строкой
lLastRow = ...
написать строку
[vba]
Код
ActiveSheet.UsedRange
[/vba]


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
а по факту форматирует на диапазоне B2:B46..
почему?

Дело в том, что Вы поудаляли перед этим несколько строк. До удаления сочетание Контрл Енд (это Ваш xlLastCell) выделяло Вам ячейку Т46. После удаления строк все равно Контрл Енд будет выдавать Вам Т46. До того момента, пока Вы не обновите информацию файла о самом себе. Например
Перезапуск Екселя решил проблему!

А проще в коде перед строкой
lLastRow = ...
написать строку
[vba]
Код
ActiveSheet.UsedRange
[/vba]

Автор - _Boroda_
Дата добавления - 16.09.2014 в 18:53
mikaelw Дата: Вторник, 16.09.2014, 21:19 | Сообщение № 13
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 179
Репутация: 1 ±
Замечаний: 20% ±

Excel 2010, 2013, 2016
Спасибо всем!

alex1248, за решение проблемы.
Gustav, за совет, что удивительно сегодня Walkenbach а именно про это читал...

_Boroda_ за ответ на вопрос почему?
 
Ответить
СообщениеСпасибо всем!

alex1248, за решение проблемы.
Gustav, за совет, что удивительно сегодня Walkenbach а именно про это читал...

_Boroda_ за ответ на вопрос почему?

Автор - mikaelw
Дата добавления - 16.09.2014 в 21:19
Alex_ST Дата: Среда, 17.09.2014, 08:55 | Сообщение № 14
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3211
Репутация: 609 ±
Замечаний: 0% ±

2003
Для себя когда-то сделал шпаргалку с разными методами:
До сих пор иногда пользуюсь :)
(Прошу прощения, что не по примеру топик-стартера. У меня с работы собаки-сисадмины скачивание файлов с макросами запретили :( killed )



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Среда, 17.09.2014, 09:00
 
Ответить
СообщениеДля себя когда-то сделал шпаргалку с разными методами:
До сих пор иногда пользуюсь :)
(Прошу прощения, что не по примеру топик-стартера. У меня с работы собаки-сисадмины скачивание файлов с макросами запретили :( killed )

Автор - Alex_ST
Дата добавления - 17.09.2014 в 08:55
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!