Страницы: 1
RSS
Скопировать столбец В со всех листов книги на Общий лист
 
дорогие любители экселя,

я знаю что мою проблему можно решить с помощью PowerQuery, но мне необходимо написать код в макрос.

мой документ содержит несколько разных таблиц, я хочу соединить эти таблицы в одну. Код должен ссылаться на листы и копировать только одну колону(Range B:B) и переносить ее на другой лист. И так пройтись по всем листам и копировать в каждую последующую колону на общем листе, в итоге должна получиться таблица.

Буду очень признательна за помощь!

Заранее благодарю за ответы
Екатерина
 
Екатерина,
запишите маккордером.


P.S. каков привет, таков ответ.
Изменено: evgeniygeo - 24.09.2020 13:39:04
 
- Макрос должен знать, как называется лист (общий лист) куда будут копироваться данные со столбцов В
- Макрос должен знать, с каких листов не надо копировать столбец В на общий лист
- желательно знать есть ли общее значение в именах листов с которых надо брать столбец В - например, надо копировать столбец В с листов, в название которых есть слово "Отчёт" (это не обязательное требование, но так бывает, что людям обычно надо брать данные с листов, которые одинаково называются)

Вот вам макрос. Поиграйтесь
Изменено: New - 24.09.2020 13:50:04
 
Спасибо большое за макрос. к сожалению не знаю Вашего имени. Я вставила код, пока «играюсь», уже что то получается, но пока не идеально.
можно попросить Вас скопировать код в ответ? Я к сожалению, не вижу Ваши комментарии(зеленым цветов), они закодированы.
хотелось бы прочитать очень.

заранее благодарю
Екатерина
 
Екатерина, даже в приведенном файле от New, ? или после копирования в ваш файл такими стали?
если да то еще раз их скопируйте но в раскладке русскоязычной.
Код
Option Explicit

Sub Собрать_столбцы_В()
Dim Sht As Worksheet, Counter As Long, LastCol As Long

    With Worksheets("Общий")
        LastCol = .Cells(1, Columns.Count).End(xlToLeft).Column 'номер последнего столбца
        .Cells.Clear 'удаляем данные со всего листа Общий (если НЕ надо удалять, то закомментируйте)
    End With
    
    'Counter = LastCol 'если надо добавлять столбцы правее, то раскомментируйте эту строку
     
    For Each Sht In ActiveWorkbook.Worksheets
        If Sht.Name <> "Общий" Then
            Counter = Counter + 1
            Sht.Columns(2).Copy Worksheets("Общий").Cells(1, Counter) 'копируем столбец В на лист Общий
        End If
    Next Sht
    MsgBox "Копирование столбцов В завершено!", vbInformation, "Конец"
End Sub

Изменено: Mershik - 24.09.2020 15:10:11
Не бойтесь совершенства. Вам его не достичь.
 
Спасибо большое Mershik. У меня нет русскоязычной раскладки. Только в телефоне.
отличного дня.
попробую доиграть код.
 
Ау! Название темы кто предлагать будет?!
 
Уважаемый модератор. Не понимаю вопроса.  Я ведь тему и описание задала в самом начале.
Екатерина
 
Как пример для темы: Скопировать столбец В со всех листов книги на Общий лист

Цитата
Екатерина написал:
попробую доиграть код.
Вот именно для этого мы (люди помогающие другим людям на форуме) всегда просим выкладывать свой файл-пример, со своими данными и со своей архитектурой файла (где какие столбцы, где какие данные, где какие таблицы на листе, где какие форматы и т.д.) и уже под конкретный пример пишем макрос.
Вы свой файл не приложили, поэтому мне пришлось делать свой пример. В моём примере как видите всё работает. А под ваш пример код макроса надо дорабатывать, а если бы вы свой файл-пример приложили бы сразу к вашему первому сообщению, то ничего бы вам самой дорабатывать не пришлось бы
Изменено: New - 24.09.2020 16:11:31
 
Спасибо New.  Я с удовольствием доработала😁и все получилось с Вашей помощью👍Мне было важно узнать сам принцип☺️

P.S. По поводу примера, у меня нет личного ноутбука с экселем чтобы выслать.а с рабочего я не имею права что либо высылать.
спасибо за помощь!
 
Какая вы молодец, что сами доработали. А то некоторым людям нам приходится по 5 раз корректировать код.
 
Цитата
Екатерина написал: Не понимаю вопроса.
О названии темы четко написано в правилах форума:
Цитата
2.1. Название темы должно отражать смысл проблемы. Темы с названиями "Помогите", "Help", "Срочно", "Нужен макрос" - плохая идея.
 
Хорошо, я поняла. В след раз обязательно 😁
Страницы: 1
Наверх