Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Копирование и вставка строк на другой лист Проблема / 24 сообщений из 24, страница 1 из 1
20.11.2007, 18:40
    #34953229
Pipl2007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование и вставка строк на другой лист Проблема
Здравствуйте всем! Буду очень признателен если кто нибудь поможет решить этот вопрос.
Постараюсь быть кратким. Есть книга Excel - в ней около 20 листов, на каждом несколько записей
построчно, но не более 30 строк. Задача: Необходимо скопировать с каждого листа только те строки в которых есть данные и вставить на один определенный лист. То есть нужно чтобы при обнаружении первой пустой строки на листе выполнялся переход на другой лист и т.д. Также на листе - приемнике чтобы данные с каждого листа вставлялись сверху вниз с пробелом в 1 строку
Извиняюсь что кратко не получилось, сам пытался не получается, намекните хотя бы если кто знает.
...
Рейтинг: 0 / 0
20.11.2007, 19:14
    #34953344
Pavel55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование и вставка строк на другой лист Проблема
Запустите макрос в приложенном файле (Alt+F8). Таблицы будут скопированы на лист "Общий"
...
Рейтинг: 0 / 0
20.11.2007, 19:16
    #34953353
Pavel55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование и вставка строк на другой лист Проблема
Там вот такой макросик

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Sub CopyTables()
Dim Sh As Worksheet
Dim CommonSheet As Worksheet
Dim iRows&
    Set CommonSheet = Sheets("Общий")
    CommonSheet.Cells.Clear
    For Each Sh In Worksheets
        If Sh.Name = "Общий" Then GoTo Mark1
        If CommonSheet.UsedRange.Rows.Count =  1  Then
            iRows =  0 
        Else
            iRows =  2 
        End If
        Sheets(Sh.Name).UsedRange.Copy Destination:=CommonSheet.Cells(CommonSheet.UsedRange.Rows.Count + iRows,  1 )
Mark1:
    Next
    MsgBox "Таблицы скопированы на Общий лист!"
End Sub
...
Рейтинг: 0 / 0
21.11.2007, 08:07
    #34953897
Pipl2007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование и вставка строк на другой лист Проблема
Спасибо огромное Pavel55, все получилось, извините за назойливость, забыл уточнить еще такой момент допустим можно сделать эту операцию с первымы 10 листами или несколькими листами выборочно?
...
Рейтинг: 0 / 0
21.11.2007, 08:16
    #34953910
кладовщик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование и вставка строк на другой лист Проблема
Pavel55 написал макрос для копирования данных из вообще всех рабочих листов всех книг, открытых в данный момент.
Если выборочно, то нужно будет к выбранным листам обращаться по индексу.
...
Рейтинг: 0 / 0
21.11.2007, 08:22
    #34953918
кладовщик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование и вставка строк на другой лист Проблема
кладовщикPavel55 написал макрос для копирования данных из вообще всех рабочих листов всех книг, открытых в данный момент.
Если выборочно, то нужно будет к выбранным листам обращаться по индексу.
Написал и засомневался в правильности. На самом деле макрос ведь для всех листов этой раб книги?
Как-то привык писать ThisWorkBook. Как правильно?
...
Рейтинг: 0 / 0
21.11.2007, 08:40
    #34953945
Pipl2007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование и вставка строк на другой лист Проблема
Неужели нельзя скопировать первые 10,,,12 листов без обращения к каждому поименно?
...
Рейтинг: 0 / 0
21.11.2007, 08:47
    #34953958
кладовщик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование и вставка строк на другой лист Проблема
Pipl2007Неужели нельзя скопировать первые 10,,,12 листов без обращения к каждому поименно?
Попробуйте вместа цикла for each ... next:
For i=1 to 10
ThisWorkBook.WorkSheets(i).UsedRange.Copy Destination:=CommonSheet.Cells(CommonSheet.UsedRange.Rows.Count + iRows, 1)
Next i
...
Рейтинг: 0 / 0
21.11.2007, 10:24
    #34954248
Pipl2007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование и вставка строк на другой лист Проблема
Наверное я уже совсем отупел ничего не получается, подскажите пожалуйста как обратится к нужным листам по имени
хотя бы на примере двух листов. Т,е желательно чтобы работал макрос Pavel55 но чтобы он обращался или к первым 10 листам,
или к каждому поименно
...
Рейтинг: 0 / 0
21.11.2007, 10:29
    #34954266
кладовщик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование и вставка строк на другой лист Проблема
Pipl2007Наверное я уже совсем отупел ничего не получается, подскажите пожалуйста как обратится к нужным листам по имени
хотя бы на примере двух листов. Т,е желательно чтобы работал макрос Pavel55 но чтобы он обращался или к первым 10 листам,
или к каждому поименно
А что именно не получается-то? Вместо макроса Pavel 55 просто

For i=1 to 10
ThisWorkBook.WorkSheets(i).UsedRange.Copy Destination:=CommonSheet.Cells(CommonSheet.UsedRange.Rows.Count + iRows, 1)
Next i

iRows до того только не забудьте 2 присвоить. Ну и, ясен пень, эти 10 листов в книге должны быть и сам лист с названием "Общий"
...
Рейтинг: 0 / 0
21.11.2007, 10:36
    #34954293
Pavel55
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование и вставка строк на другой лист Проблема
Вот так можно обращаться к листу по имени Sheets("Лист1")


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Sub CopyTables2()
Dim Sh As Worksheet
Dim CommonSheet As Worksheet
Dim iRows&
    Set CommonSheet = Sheets("Общий")
    CommonSheet.Cells.Clear
        'для первого листа
        If CommonSheet.UsedRange.Rows.Count =  1  Then
            iRows =  0 
        Else
            iRows =  2 
        End If
        Sheets("Лист1").UsedRange.Copy Destination:=CommonSheet.Cells(CommonSheet.UsedRange.Rows.Count + iRows,  1 )
        'для всех остальных листов
        iRows =  2 
        Sheets("Лист2").UsedRange.Copy Destination:=CommonSheet.Cells(CommonSheet.UsedRange.Rows.Count + iRows,  1 )
        Sheets("Лист3").UsedRange.Copy Destination:=CommonSheet.Cells(CommonSheet.UsedRange.Rows.Count + iRows,  1 )
        Sheets("Лист4").UsedRange.Copy Destination:=CommonSheet.Cells(CommonSheet.UsedRange.Rows.Count + iRows,  1 )
        Sheets("Лист5").UsedRange.Copy Destination:=CommonSheet.Cells(CommonSheet.UsedRange.Rows.Count + iRows,  1 )
        Sheets("Лист6").UsedRange.Copy Destination:=CommonSheet.Cells(CommonSheet.UsedRange.Rows.Count + iRows,  1 )
    MsgBox "Таблицы скопированы на Общий лист!"
End Sub
...
Рейтинг: 0 / 0
21.11.2007, 11:26
    #34954536
Nosorog
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование и вставка строк на другой лист Проблема
ой... ребята... извините за нахальство...похожая задачка... пока вы в теме !!!

есть 5 книг... Book_1 to Book_5
в каждой книге по одному листу
на листе не более 10-15 записей (строк)

надо все слить в одну новую книгу... на один лист... с интервалом одна строка
между данными взятыми из каждой книги Book_1 to Book_5

заранее спасибо.
...
Рейтинг: 0 / 0
21.11.2007, 11:45
    #34954652
кладовщик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование и вставка строк на другой лист Проблема
nosorogой... ребята... извините за нахальство...похожая задачка... пока вы в теме !!!

есть 5 книг... Book_1 to Book_5
в каждой книге по одному листу
на листе не более 10-15 записей (строк)

надо все слить в одну новую книгу... на один лист... с интервалом одна строка
между данными взятыми из каждой книги Book_1 to Book_5

заранее спасибо.
Так все практически написано ведь.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Sub CopyTables()
Dim  DestinationBook as WorkBook
Dim CommonSheet As Worksheet
       Set DestinationBook=WorkBooks ("CводнаяКнига")     
       Set CommonSheet = DestinationBook .WorkSheets("Общий")

CommonSheet.Range("A1")="Пакистанские арбузы хороши в эту осенню ночь"
Dim i as byte
For i= 1  to  5 
  WorkBooks(“Book_” & i).WorkSheets( 1 ). UsedRange.Copy _
    Destination:=CommonSheet.Cells(CommonSheet.UsedRange.Rows.Count +  2 ,  1 )
Next i
           End Sub
...
Рейтинг: 0 / 0
21.11.2007, 11:50
    #34954684
кладовщик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование и вставка строк на другой лист Проблема
Книги Book_1 .. Book_5 уже должны быть открыты, а лист Общий в книге СводнаяКнига должен существовать и быть чистым.
...
Рейтинг: 0 / 0
21.11.2007, 11:53
    #34954698
Nosorog
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование и вставка строк на другой лист Проблема
2 кладовщик
большое спасибо !!!
а еще... в офисе есть фича СЛИЯНИЕ... она для этих целей ???
...
Рейтинг: 0 / 0
21.11.2007, 13:09
    #34955063
Pipl2007
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование и вставка строк на другой лист Проблема
Спасибо большое всем. Разжевали и в рот положили... Закрыто.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
11.03.2009, 12:20
    #35861753
Vladislavkz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование и вставка строк на другой лист Проблема
Ребят помогите если не сложно.
Задача следующая есть Есть предположим два шита с данными табличного вида, нужно из первого выбрать предположим столбцы (A:A C:C D:D) и перенести их во второй шит в другие столбцы предположим D3 C3 B3.
...
Рейтинг: 0 / 0
11.03.2009, 13:07
    #35861965
Vladislavkz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование и вставка строк на другой лист Проблема
Да ещё хотел немного пояснить почему в другой шит вставляются данные с координаты D3 C3 B3.
Выше должна быть шапка с данными статическая и команда CommonSheet.Cells.Clear не должна выполнять.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
27.04.2012, 22:46
    #37775183
leha013-01
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование и вставка строк на другой лист Проблема
привет, всем!
может не по теме, конечно, но перерыл кучу всего, здесь увидел похожее. вообщем, задача такова:

есть исходная книга, из которой макрос открывает книгу с данными (16 листов в каждом из которых есть диапазон ячеек (ячейки 11-67 первой строки иначе говоря (Range(Cells(1, 11), Cells(1, 67)).

задача такова:
перебрать по очереди все листы,
выделить диапазон
и вставить значения диапазона (фиксированный в каждом листе!) в исходную книгу на лист 2, в диапазон Range(Cells(Z, 3), Cells(Z, 59), где z -номер строки, меняется от 2 до 16

а вопрос в следующем: если ячейка (z, 3) листа 2 исх.книги пуста - записать туда диапазон, если нет - перейти на след. строку, прощупать "ее", и т.д. вроде все правильно прописал, ... но чето запинается...

ругается на строке Workbooks("СПР").Sheets(2).Range(Cells(Z, 3), Cells(Z, 59)).Cells.Value = myrange.Cells.Value

вот код:
q = ActiveWorkbook.Sheets.Count
Set myrange = ActiveSheet.Range(Cells(1, 11), Cells(1, 67))

For Each Worksheet In ActiveWorkbook.Worksheets
Worksheet.Select
For i = 11 To 67
For Z = 2 To q
If Workbooks("СПР").Sheets(2).Cells(Z, 3).Value = "" Then
Workbooks("СПР").Sheets(2).Range(Cells(Z, 3), Cells(Z, 59)).Cells.Value = myrange.Cells.Value
ElseIf Workbooks("СПР").Sheets(2).Cells(Z, 3).Value <> "" Then Z = Z + 1
End If
Next Z
Next i
Next Worksheet

помогите плиз!! оч. надо!1!
...
Рейтинг: 0 / 0
27.04.2012, 22:51
    #37775192
leha013-01
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование и вставка строк на другой лист Проблема
бзы!! а вот книга с данными, откуда нужно брать инфу и заливать на 2 лист исходной книги! )
...
Рейтинг: 0 / 0
27.04.2012, 23:11
    #37775209
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование и вставка строк на другой лист Проблема
Замени Workbooks("СПР") на ThisWorkbook
...
Рейтинг: 0 / 0
28.04.2012, 20:18
    #37776388
leha013-01
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование и вставка строк на другой лист Проблема
День 2: немного изменил код, теперь он выглядит так:

ThisWorkbook.Sheets(2).Select
iLastRow = Cells(ActiveSheet.Rows.Count, 3).End(xlUp).Row

...открываем книгу с данными....

awbname = ActiveWorkbook.Name
q = Workbooks(awbname).Sheets.Count

For Each Worksheet In Workbooks(awbname).Worksheets
Worksheet.Select
For Z = 2 To q
ThisWorkbook.Sheets(2).Cells(Z + iLastRow - 1, 1).Value = "ДАТА"
ThisWorkbook.Sheets(2).Cells(Z + iLastRow - 1, 2).Value = Workbooks(awbname).ActiveSheet.Name
If ThisWorkbook.Sheets(2).Cells(Z + iLastRow - 1, 3).Value = "" And _
ThisWorkbook.Sheets(2).Cells(Z + iLastRow + 1, 2).Value = "" Then
ThisWorkbook.Sheets(2).Range(Cells(Z + iLastRow - 1, 3), Cells(Z + iLastRow - 1, 59)).Cells.Value = _
Workbooks(awbname).ActiveSheet.Range(Cells(1, 11), Cells(1, 67)).Cells.Value

'и тут-то пишет Application-defined or object defined error

GoTo 888
Else: Z = Z + 1
End If
Next Z
888:
Next Worksheet

судя по всему проблема с переходом от исходной книги к другой... ничего не понимаю: переписать некий диапазон одной книги в другую - оказалось траблом.

народ, помогите плиз!!!
...
Рейтинг: 0 / 0
28.04.2012, 20:20
    #37776390
leha013-01
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование и вставка строк на другой лист Проблема
to Shocker.Pro

Заменил, эффект тот же...
...
Рейтинг: 0 / 0
28.04.2012, 20:32
    #37776400
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование и вставка строк на другой лист Проблема
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
'Определяем переменную книги и листа
Dim MyWB As WorkBook, MySheet AS Worksheet
'открываем книгу
Set MyWB=WorkBooks.Open("c:\ee.xls")

'
'обращаемся к нужной книге
For Each MySheet In MyWB  'не надо использовать имена объектов в качестве переменных
'Обращаемся к нужному листу
MySheet.Range(Cells(1, 11), Cells(1, 67)).Cells.Value



и немного читаем на тему Active 12381775
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Копирование и вставка строк на другой лист Проблема / 24 сообщений из 24, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]