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

Вход

Регистрация

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

 

= Мир MS Excel/Сбор данных с нескольких листов макросом - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Сбор данных с нескольких листов макросом (Макросы/Sub)
Сбор данных с нескольких листов макросом
werty456 Дата: Четверг, 12.07.2018, 19:53 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Доброго времени суток, уважаемые форумчане!
Прошу помощи в решении задачи:
Необходимо произвести сбор данных с "Лист1", "Лист2", "Лист3", "Лист4" на лист "сводная".
Данные на "Лист1", "Лист2", "Лист3", "Лист4" могут быть записаны через строчку через две, меняться количество строк и столбцов
Таблица на листе "Сводная", куда заносятся данные, форматирована,как таблица с заголовками, и начинается с 9 строки
К сообщению приложен файл: 56.xlsm (39.7 Kb)
 
Ответить
СообщениеДоброго времени суток, уважаемые форумчане!
Прошу помощи в решении задачи:
Необходимо произвести сбор данных с "Лист1", "Лист2", "Лист3", "Лист4" на лист "сводная".
Данные на "Лист1", "Лист2", "Лист3", "Лист4" могут быть записаны через строчку через две, меняться количество строк и столбцов
Таблица на листе "Сводная", куда заносятся данные, форматирована,как таблица с заголовками, и начинается с 9 строки

Автор - werty456
Дата добавления - 12.07.2018 в 19:53
Kuzmich Дата: Четверг, 12.07.2018, 21:53 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 711
Репутация: 156 ±
Замечаний: 0% ±

Excel 2003
Цитата
Необходимо произвести сбор данных с "Лист1", "Лист2", "Лист3", "Лист4" на лист "сводная".

При активном листе "Сводная" запустить макрос
[vba]
Код
Sub Sbor()
Dim Sht As Worksheet
Dim iLastRow As Long
Dim iLR As Long
  iLastRow = Cells(Rows.Count, 1).End(xlUp).Row
  Range("A10:K" & iLastRow).Clear
    For Each Sht In Worksheets
      If Sht.Name <> "Сводная" And Sht.Name <> "123" Then
        With Sht
          iLR = .Cells(.Rows.Count, 1).End(xlUp).Row
          iLastRow = Cells(Rows.Count, 1).End(xlUp).Row + 1
          .Range(.Cells(2, "A"), .Cells(iLR, "K")).Copy Cells(iLastRow, 1)
        End With
      End If
    Next
End Sub
[/vba]
 
Ответить
Сообщение
Цитата
Необходимо произвести сбор данных с "Лист1", "Лист2", "Лист3", "Лист4" на лист "сводная".

При активном листе "Сводная" запустить макрос
[vba]
Код
Sub Sbor()
Dim Sht As Worksheet
Dim iLastRow As Long
Dim iLR As Long
  iLastRow = Cells(Rows.Count, 1).End(xlUp).Row
  Range("A10:K" & iLastRow).Clear
    For Each Sht In Worksheets
      If Sht.Name <> "Сводная" And Sht.Name <> "123" Then
        With Sht
          iLR = .Cells(.Rows.Count, 1).End(xlUp).Row
          iLastRow = Cells(Rows.Count, 1).End(xlUp).Row + 1
          .Range(.Cells(2, "A"), .Cells(iLR, "K")).Copy Cells(iLastRow, 1)
        End With
      End If
    Next
End Sub
[/vba]

Автор - Kuzmich
Дата добавления - 12.07.2018 в 21:53
werty456 Дата: Понедельник, 16.07.2018, 18:43 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Собрал данные макросом. Потом произошло обновление данных, снова собрал данные первые данные удалились (пустые ячейки), а новые данные добавились в конец таблицы.Излишнее цитирование удалено администрацией - это нарушение п.5j Правил форума
К сообщению приложен файл: 56-1-.xlsm (46.1 Kb)
 
Ответить
СообщениеСобрал данные макросом. Потом произошло обновление данных, снова собрал данные первые данные удалились (пустые ячейки), а новые данные добавились в конец таблицы.Излишнее цитирование удалено администрацией - это нарушение п.5j Правил форума

Автор - werty456
Дата добавления - 16.07.2018 в 18:43
boa Дата: Вторник, 17.07.2018, 08:31 | Сообщение № 4
Группа: Друзья
Ранг: Ветеран
Сообщений: 549
Репутация: 167 ±
Замечаний: 0% ±

365
werty456,
Замените строку
[vba]
Код
Range("A10:K" & iLastRow).Clear
[/vba]
на
[vba]
Код
Range("A10:K" & iLastRow).EntireRow.Delete
[/vba]
либо после очищения делайте ресайз таблицы


 
Ответить
Сообщениеwerty456,
Замените строку
[vba]
Код
Range("A10:K" & iLastRow).Clear
[/vba]
на
[vba]
Код
Range("A10:K" & iLastRow).EntireRow.Delete
[/vba]
либо после очищения делайте ресайз таблицы

Автор - boa
Дата добавления - 17.07.2018 в 08:31
werty456 Дата: Пятница, 20.07.2018, 20:28 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013

Спасибо большое
 
Ответить
Сообщение
Спасибо большое

Автор - werty456
Дата добавления - 20.07.2018 в 20:28
Kuzmich Дата: Суббота, 21.07.2018, 10:09 | Сообщение № 6
Группа: Проверенные
Ранг: Ветеран
Сообщений: 711
Репутация: 156 ±
Замечаний: 0% ±

Excel 2003
Не, нормально...
Макрос я писал, старался,
но спасибо не дождался!
 
Ответить
СообщениеНе, нормально...
Макрос я писал, старался,
но спасибо не дождался!

Автор - Kuzmich
Дата добавления - 21.07.2018 в 10:09
werty456 Дата: Понедельник, 23.07.2018, 15:50 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Kuzmich, извините что так долго не отвечал
Спасибо большое

P.S. Перебои с интернетом(((
 
Ответить
СообщениеKuzmich, извините что так долго не отвечал
Спасибо большое

P.S. Перебои с интернетом(((

Автор - werty456
Дата добавления - 23.07.2018 в 15:50
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Сбор данных с нескольких листов макросом (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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