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

Вход

Регистрация

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

 

= Мир MS Excel/Перенос данных из таблицы в нижнюю строку на другом листе - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Перенос данных из таблицы в нижнюю строку на другом листе
ASV007 Дата: Пятница, 10.03.2023, 09:22 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

Всем здравствуйте!
Возможно, подобная тема уже была, но поиск не дал именно того, что мне нужно.

Задача состоит в следующем:
Имеется лист "Навеска". На нём таблица, часть данных из которой (A4:B17) нужно перенести на лист "Результаты". Причём, перенести нужно в строку, которая располагается под уже заполненной. Затем один или несколько параметров на листе "Навеска" будут изменяться, после чего нужно сформировать следующую строку. И так далее.

Надеюсь, объяснил понятно. :-)
Заранее спасибо за помощь!
К сообщению приложен файл: primer.xls (207.5 Kb)
 
Ответить
СообщениеВсем здравствуйте!
Возможно, подобная тема уже была, но поиск не дал именно того, что мне нужно.

Задача состоит в следующем:
Имеется лист "Навеска". На нём таблица, часть данных из которой (A4:B17) нужно перенести на лист "Результаты". Причём, перенести нужно в строку, которая располагается под уже заполненной. Затем один или несколько параметров на листе "Навеска" будут изменяться, после чего нужно сформировать следующую строку. И так далее.

Надеюсь, объяснил понятно. :-)
Заранее спасибо за помощь!

Автор - ASV007
Дата добавления - 10.03.2023 в 09:22
jun Дата: Пятница, 10.03.2023, 10:20 | Сообщение № 2
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 145
Репутация: 43 ±
Замечаний: 0% ±

ASV007, здравствуйте!
Например, можно так:
[vba]
Код
Sub Макрос1()
Dim lr As Long, arr As Variant, i As Long, j As Long
With Worksheets("Навеска")
    ' загружаем данные в массив
    lr = .Cells(.Rows.Count, 1).End(xlUp).Row ' последняя заполненная строка на листе Навеска в первом столбце (без итогов)
    arr = .Range("A4:B" & lr) ' выбираем диапазон A4:B17
End With
With Worksheets("Результаты")
    lr = .Cells(.Rows.Count, 4).MergeArea.End(xlUp).Row + 4 ' определяем последнюю заполненную строку в таблице в 4 столбце _
    + 4 потому, что у Вас объединенная строка состоит из 4 строк
    'заносим Цемент
    .Cells(lr, 4).MergeArea = arr(1, 1)
    .Cells(lr, 7).MergeArea = arr(1, 2)
    ' заносим ГЦ
    .Cells(lr, 8).MergeArea = arr(2, 1)
    .Cells(lr, 10).MergeArea = arr(2, 2)
    ' заносим "Добавку 1"
    .Cells(lr, 11).MergeArea = arr(3, 1)
    .Cells(lr, 13).MergeArea = arr(3, 2)
    ' далее в цикле с 14 столбца (N) заполняем оставшиеся ячейки во вставленной строке
    j = 14
    For i = 4 To UBound(arr, 1)
        .Cells(lr, j) = arr(i, 1) ' заполняем марку
        .Cells(lr, j + 1) = arr(i, 2) ' заполняем %
        j = j + 2 ' плюс 2 столбца (т.е был N, стал P)
    Next i
End With
[/vba]
К сообщению приложен файл: 9976405.xls (203.5 Kb)
 
Ответить
СообщениеASV007, здравствуйте!
Например, можно так:
[vba]
Код
Sub Макрос1()
Dim lr As Long, arr As Variant, i As Long, j As Long
With Worksheets("Навеска")
    ' загружаем данные в массив
    lr = .Cells(.Rows.Count, 1).End(xlUp).Row ' последняя заполненная строка на листе Навеска в первом столбце (без итогов)
    arr = .Range("A4:B" & lr) ' выбираем диапазон A4:B17
End With
With Worksheets("Результаты")
    lr = .Cells(.Rows.Count, 4).MergeArea.End(xlUp).Row + 4 ' определяем последнюю заполненную строку в таблице в 4 столбце _
    + 4 потому, что у Вас объединенная строка состоит из 4 строк
    'заносим Цемент
    .Cells(lr, 4).MergeArea = arr(1, 1)
    .Cells(lr, 7).MergeArea = arr(1, 2)
    ' заносим ГЦ
    .Cells(lr, 8).MergeArea = arr(2, 1)
    .Cells(lr, 10).MergeArea = arr(2, 2)
    ' заносим "Добавку 1"
    .Cells(lr, 11).MergeArea = arr(3, 1)
    .Cells(lr, 13).MergeArea = arr(3, 2)
    ' далее в цикле с 14 столбца (N) заполняем оставшиеся ячейки во вставленной строке
    j = 14
    For i = 4 To UBound(arr, 1)
        .Cells(lr, j) = arr(i, 1) ' заполняем марку
        .Cells(lr, j + 1) = arr(i, 2) ' заполняем %
        j = j + 2 ' плюс 2 столбца (т.е был N, стал P)
    Next i
End With
[/vba]

Автор - jun
Дата добавления - 10.03.2023 в 10:20
ASV007 Дата: Пятница, 10.03.2023, 10:26 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

jun, большущее спасибо! Прям то, что нужно!
 
Ответить
Сообщениеjun, большущее спасибо! Прям то, что нужно!

Автор - ASV007
Дата добавления - 10.03.2023 в 10:26
  • Страница 1 из 1
  • 1
Поиск:

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