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

Вход

Регистрация

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

 

= Мир MS Excel/Изменение номера столбца при заполнении строки - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Изменение номера столбца при заполнении строки (Макросы/Sub)
Изменение номера столбца при заполнении строки
user0 Дата: Понедельник, 12.06.2017, 02:46 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 131
Репутация: 8 ±
Замечаний: 0% ±

Excel 2013, 2016
Доброго времени,

Подскажите, пожалуйста, как красиво задать автоматическое увеличение номера столбца при заполнении строки данными извне (чтобы не прходилось номера столбцов править, если понадобится вставить/передвинуть какие-нибудь столбцы)?
[vba]
Код
currentLine = 1
Cells(currentLine, 2).Value = session.ext_app.test.Text
Cells(currentLine, 3).Value = session.ext_app.name.Text
Cells(currentLine, 4).Value = session.ext_app.descr.Text
..
Cells(currentLine, 50).Value = session.ext_app.some_other_fields.Text
[/vba]
Пока кроме как добаления [vba]
Код
currentColumn = currentColumn + 1
[/vba] после каждой строки ничего не приходит на ум.


Сообщение отредактировал user0 - Понедельник, 12.06.2017, 02:48
 
Ответить
СообщениеДоброго времени,

Подскажите, пожалуйста, как красиво задать автоматическое увеличение номера столбца при заполнении строки данными извне (чтобы не прходилось номера столбцов править, если понадобится вставить/передвинуть какие-нибудь столбцы)?
[vba]
Код
currentLine = 1
Cells(currentLine, 2).Value = session.ext_app.test.Text
Cells(currentLine, 3).Value = session.ext_app.name.Text
Cells(currentLine, 4).Value = session.ext_app.descr.Text
..
Cells(currentLine, 50).Value = session.ext_app.some_other_fields.Text
[/vba]
Пока кроме как добаления [vba]
Код
currentColumn = currentColumn + 1
[/vba] после каждой строки ничего не приходит на ум.

Автор - user0
Дата добавления - 12.06.2017 в 02:46
AndreTM Дата: Понедельник, 12.06.2017, 03:27 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 496 ±
Замечаний: 0% ±

2003 & 2010
Чтобы не писать 50 строк с "позицией вставки" - сформируй "внешние данные" в виде массива.
[vba]
Код
    Dim a(), b()

    With session.ext_app
        a = Array(.test.Text, .Name.Text, .descr.Text, , , , , , ,.some_other_fields.Text)
    End With

    cnt = UBound(a) + 1
    ReDim b(1 To 1, 1 To cnt)
    For i = 1 To UBound(b, 2): b(1, i) = a(i - 1): Next

    Cells(CurrentLine, 2).Resize(, cnt).Value = a
    CurrentLine = CurrentLine + 1
[/vba]Если будешь добавлять/перемещать столбцы - то только в Array() надо в нужных местах сделать исправления.


Skype: andre.tm.007
Donate: Qiwi: 9517375010


Сообщение отредактировал AndreTM - Понедельник, 12.06.2017, 03:32
 
Ответить
СообщениеЧтобы не писать 50 строк с "позицией вставки" - сформируй "внешние данные" в виде массива.
[vba]
Код
    Dim a(), b()

    With session.ext_app
        a = Array(.test.Text, .Name.Text, .descr.Text, , , , , , ,.some_other_fields.Text)
    End With

    cnt = UBound(a) + 1
    ReDim b(1 To 1, 1 To cnt)
    For i = 1 To UBound(b, 2): b(1, i) = a(i - 1): Next

    Cells(CurrentLine, 2).Resize(, cnt).Value = a
    CurrentLine = CurrentLine + 1
[/vba]Если будешь добавлять/перемещать столбцы - то только в Array() надо в нужных местах сделать исправления.

Автор - AndreTM
Дата добавления - 12.06.2017 в 03:27
user0 Дата: Понедельник, 12.06.2017, 04:12 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 131
Репутация: 8 ±
Замечаний: 0% ±

Excel 2013, 2016
Класс, спасибо, попробую такой вариант. Хотя чувствую тут больше мест где можно накосячить )
 
Ответить
СообщениеКласс, спасибо, попробую такой вариант. Хотя чувствую тут больше мест где можно накосячить )

Автор - user0
Дата добавления - 12.06.2017 в 04:12
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Изменение номера столбца при заполнении строки (Макросы/Sub)
Страница 1 из 11
Поиск:

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