powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Копирование и вставка строк на другой лист Проблема
24 сообщений из 24, страница 1 из 1
Копирование и вставка строк на другой лист Проблема
    #34953229
Pipl2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте всем! Буду очень признателен если кто нибудь поможет решить этот вопрос.
Постараюсь быть кратким. Есть книга Excel - в ней около 20 листов, на каждом несколько записей
построчно, но не более 30 строк. Задача: Необходимо скопировать с каждого листа только те строки в которых есть данные и вставить на один определенный лист. То есть нужно чтобы при обнаружении первой пустой строки на листе выполнялся переход на другой лист и т.д. Также на листе - приемнике чтобы данные с каждого листа вставлялись сверху вниз с пробелом в 1 строку
Извиняюсь что кратко не получилось, сам пытался не получается, намекните хотя бы если кто знает.
...
Рейтинг: 0 / 0
Копирование и вставка строк на другой лист Проблема
    #34953344
Pavel55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Запустите макрос в приложенном файле (Alt+F8). Таблицы будут скопированы на лист "Общий"
...
Рейтинг: 0 / 0
Копирование и вставка строк на другой лист Проблема
    #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
Копирование и вставка строк на другой лист Проблема
    #34953897
Pipl2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо огромное Pavel55, все получилось, извините за назойливость, забыл уточнить еще такой момент допустим можно сделать эту операцию с первымы 10 листами или несколькими листами выборочно?
...
Рейтинг: 0 / 0
Копирование и вставка строк на другой лист Проблема
    #34953910
кладовщик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pavel55 написал макрос для копирования данных из вообще всех рабочих листов всех книг, открытых в данный момент.
Если выборочно, то нужно будет к выбранным листам обращаться по индексу.
...
Рейтинг: 0 / 0
Копирование и вставка строк на другой лист Проблема
    #34953918
кладовщик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кладовщикPavel55 написал макрос для копирования данных из вообще всех рабочих листов всех книг, открытых в данный момент.
Если выборочно, то нужно будет к выбранным листам обращаться по индексу.
Написал и засомневался в правильности. На самом деле макрос ведь для всех листов этой раб книги?
Как-то привык писать ThisWorkBook. Как правильно?
...
Рейтинг: 0 / 0
Копирование и вставка строк на другой лист Проблема
    #34953945
Pipl2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Неужели нельзя скопировать первые 10,,,12 листов без обращения к каждому поименно?
...
Рейтинг: 0 / 0
Копирование и вставка строк на другой лист Проблема
    #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
Копирование и вставка строк на другой лист Проблема
    #34954248
Pipl2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Наверное я уже совсем отупел ничего не получается, подскажите пожалуйста как обратится к нужным листам по имени
хотя бы на примере двух листов. Т,е желательно чтобы работал макрос Pavel55 но чтобы он обращался или к первым 10 листам,
или к каждому поименно
...
Рейтинг: 0 / 0
Копирование и вставка строк на другой лист Проблема
    #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
Копирование и вставка строк на другой лист Проблема
    #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
Копирование и вставка строк на другой лист Проблема
    #34954536
Nosorog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ой... ребята... извините за нахальство...похожая задачка... пока вы в теме !!!

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

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

заранее спасибо.
...
Рейтинг: 0 / 0
Копирование и вставка строк на другой лист Проблема
    #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
Копирование и вставка строк на другой лист Проблема
    #34954684
кладовщик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Книги Book_1 .. Book_5 уже должны быть открыты, а лист Общий в книге СводнаяКнига должен существовать и быть чистым.
...
Рейтинг: 0 / 0
Копирование и вставка строк на другой лист Проблема
    #34954698
Nosorog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 кладовщик
большое спасибо !!!
а еще... в офисе есть фича СЛИЯНИЕ... она для этих целей ???
...
Рейтинг: 0 / 0
Копирование и вставка строк на другой лист Проблема
    #34955063
Pipl2007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо большое всем. Разжевали и в рот положили... Закрыто.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Копирование и вставка строк на другой лист Проблема
    #35861753
Vladislavkz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребят помогите если не сложно.
Задача следующая есть Есть предположим два шита с данными табличного вида, нужно из первого выбрать предположим столбцы (A:A C:C D:D) и перенести их во второй шит в другие столбцы предположим D3 C3 B3.
...
Рейтинг: 0 / 0
Копирование и вставка строк на другой лист Проблема
    #35861965
Vladislavkz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да ещё хотел немного пояснить почему в другой шит вставляются данные с координаты D3 C3 B3.
Выше должна быть шапка с данными статическая и команда CommonSheet.Cells.Clear не должна выполнять.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Копирование и вставка строк на другой лист Проблема
    #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
Копирование и вставка строк на другой лист Проблема
    #37775192
leha013-01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
бзы!! а вот книга с данными, откуда нужно брать инфу и заливать на 2 лист исходной книги! )
...
Рейтинг: 0 / 0
Копирование и вставка строк на другой лист Проблема
    #37775209
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Замени Workbooks("СПР") на ThisWorkbook
...
Рейтинг: 0 / 0
Копирование и вставка строк на другой лист Проблема
    #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
Копирование и вставка строк на другой лист Проблема
    #37776390
leha013-01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
to Shocker.Pro

Заменил, эффект тот же...
...
Рейтинг: 0 / 0
Копирование и вставка строк на другой лист Проблема
    #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
24 сообщений из 24, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Копирование и вставка строк на другой лист Проблема
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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