Задать вопрос
@fiercekilla
Старательно изучаю всё подряд

Как перейти на новую строку после заполнения предыдущей EXCEL VBA?

Есть код для добавления данных из формы в строку
8a3f97589b1e4c00ae42034c32538240.png
И форма
c8884c2001484ad6ab6aebd5ca6fd581.png

При нажатии кнопки добавить он постоянно добавляет в одну и ту же строку, что делать?

P.S. Код скрином т.к. при копировании его сюда вместо русского текста выдавал иероглифы.
  • Вопрос задан
  • 7078 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
honor8
@honor8
Принципы быстродействия VBA в описании
Во первых, чтобы не копировать иероглифы, нужно в окне с кодом переключиться на русский язык.
Во вторых, в данном случае вместо Application лучше написать WorksheetFunction.
В третьих, у вас в коде написано:
' НомерСтроки - Кол-во непустых ячеек в колонке "1" + 1, а не номер первой пустой строки

Если в 1-й колонке таблицы есть хотя бы одна пустая строка, то намерения вставить новую запись в конец таблицы будут не выполнены. Поэтому замените на:
' НомерСтроки - Номер первой пустой строки на рабочем листе
НомерСтроки = ActiveSheet.Cells.SpecialCells(xlLastCell).Row + 1


UPD: Количество непустых ячеек (при их наличии) к колонке активной ячейки можно посчитать:
КолНепустых = ActiveCell.SpecialCells(xlCellTypeLastCell).Row - _
  ActiveCell.EntireColumn.SpecialCells(xlCellTypeBlanks).Count
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы