Страницы: 1
RSS
Копирование одной и той же ячейки с разных листов в один
 
Думаю над такой ситуацией. Имеется куча листов с разными несвязанными названиями. Структура каждого листа однотипна но хаотична в своем роде. Надо скопировать одну и ту же ячейку, скажем А1 с каждого листа и вывести на отдельный с указанием - Лист1 - (А1), Лист 2 (А1)  и т.п. Кто то подскажет, в какую сторону копать макросом?
 
Цикл по всем листам, копирование ячейки А1 и перенос значения в сводный лист
с добавлением названия листа
 
Копать, по-моему, в сторону цикла по всем листам книги
 
с копированием данных с разных листов разобралась. а как свести в одно? вот например я указывала Worksheets("Лист1"  .Range("A1"   ) .Paste. А оно ругается, что такого метода нет. КАк в теории перевести курсор на следующую строку? Чтобы сначала в А1, потом в В1 вставляло данные и т.п.?

Пока что мыслю в этом русле, но ничерта не верно..  :(  (
Код
1
2
3
4
5
6
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
ws.Range("A1"   ) .Copy
Worksheets("Ëèñò9"  ) .Range("A1"  .Paste
     
Next ws
Изменено: christine - 27.11.2014 03:31:02
 
Код
1
Worksheets("Лист1").Range("A1") .offset(,i)
, где i - это счётчик.
А Вы не копируйте, а сразу в ячейку пишите
Код
1
Worksheets("Лист1").Range("A1") .offset(,i).value = Worksheets("Лист2") .Range("A1").value

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Код
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub Sbor()
Dim Sht As Worksheet
Dim iLastRow As Long
    For Each Sht In Worksheets
      If Sht.Name <> "общий" Then        ' кроме листа "общий"
        With Sht
          iLastRow = Cells(Rows.Count, 1).End(xlUp).Row + 1
            .Range("A1".Copy Cells(iLastRow, 1)
            Cells(iLastRow, 2) = Sht.Name
        End With
      End If
    Next
End Sub
Изменено: Kuzmich - 14.11.2014 18:14:34
 
JayBhagavan, спасибо за наставления :)
Kuzmich, спасибо за решение!)
 
Kuzmich, подскажите, пожалуйста, как можно изменить ваш код, чтобы данные копировались со всех листов, но не из одной ячейки а из несколько. К примеру, A1:C100.
Также возможно ли, чтобы макрос не показывал пустые ячейки из этого списка, ориентируясь в этом на столбец A1? Т.е. если ячейка A3 пустая, то он ее пропускает и идет к ячейке A4 и т.д. до A100.

Вложил пример.
У нас есть много листов, отличных по названию от "ОБЩИЙ ЛИСТ", в которых четкая одинаковая структура расположения информации.
На "ОБЩИЙ ЛИСТ" необходимо собрать информацию со всех листов из диапазона F13:N19, в которых имеются данные по оплате, т.е. присутствует дата в ячейке N.

Заранее спасибо!
Изменено: Евгений - 27.04.2016 16:38:30
 
Цитата
собрать информацию со всех листов из диапазона F13:N19
Копируете полностью диапазон, затем удаляете строки
Код
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Sub Sbor()
Dim Sht As Worksheet
Dim i As Long
Dim iLastRow As Long
   iLastRow = Cells(Rows.Count, 14).End(xlUp).Row + 1
   Range("F2:N" & iLastRow).ClearContents
    For Each Sht In Worksheets
      If Sht.Name <> "ОБЩИЙ ЛИСТ" Then         ' кроме листа "общий"
        With Sht
          iLastRow = Cells(Rows.Count, 6).End(xlUp).Row + 1
            .Range("F13:N19").Copy Cells(iLastRow, 6)
        End With
      End If
    Next
   iLastRow = Cells(Rows.Count, 6).End(xlUp).Row
   For i = iLastRow To 2 Step -1
     If Cells(i, 14) = "" Then Rows(i).Delete
   Next
End Sub
 
Kuzmich, все четко!
Спасибо огромное!!!!
Страницы: 1
Читают тему
Loading...