powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Копирование данных из одного листа Excel на другой
15 сообщений из 15, страница 1 из 1
Копирование данных из одного листа Excel на другой
    #35258093
Дмитрий_N
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Задача такая. Есть книга, в ней несколько листов (например 5). Четыре их них скрыто. На первом, открытом листе, есть две кнопки, в зависимости от выбора кнопки, на первый открытый лист копируются данные из второго листа, причем не все, а 1 до 50 строки. Кнопки становятся невидимыми. Две других кнопки добавляются в конец скопированных данных. Опять же при нажатии на одну из них, начиная с 52 строки добавляются данные на первый лист из третьего листа, и т.д. В конце кнопка завершить, сохраняет файл и закрывает приложение. Причем, необходимо сохранить форматирование на листах (высоту строк и ширину столбцов).

Подскажите, как правильно написать код копирования данных из одного листа на другой. Форум читал, но опыта программирования мало, не смог адаптировать под свой случай.

Заранее спасибо.
...
Рейтинг: 0 / 0
Копирование данных из одного листа Excel на другой
    #35259479
Дмитрий_N
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как скопировать данные разобрался:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Sub Copy_Data()
' Копирование листа
    Sheets("Aff_YL").Select 'Выбор листа 
    Range("A1:AG49").Select 'Выбор диапазона
    Selection.Copy 
    Sheets("Лист1").Select ' Куда копируем
    Range("A1").Select ' Начиная с какой ячейки вставлять диапазон
    ActiveSheet.Paste ' Вставка
 End Sub

Может кто-нибудь знает, как сохранить форматирование при копировании?
...
Рейтинг: 0 / 0
Копирование данных из одного листа Excel на другой
    #35259952
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PasteSpecial xlPasteAll
...
Рейтинг: 0 / 0
Копирование данных из одного листа Excel на другой
    #35260122
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий_NКак скопировать данные разобрался:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Sub Copy_Data()
' Копирование листа
    Sheets("Aff_YL").Select 'Выбор листа 
    Range("A1:AG49").Select 'Выбор диапазона
    Selection.Copy 
    Sheets("Лист1").Select ' Куда копируем
    Range("A1").Select ' Начиная с какой ячейки вставлять диапазон
    ActiveSheet.Paste ' Вставка
 End Sub

Может кто-нибудь знает, как сохранить форматирование при копировании?

То же, но короче и эффективнее (быстро и без выделения результирующего диапазона):

Код: plaintext
1.
2.
Sub Copy_Data()
    Sheets("Aff_YL").Range("A1:AG49").Copy Range("A1")
End Sub

или если нужно копировать только значения:

Код: plaintext
1.
2.
3.
4.
Sub Copy_Data()
    With Sheets("Aff_YL").Range("A1:AG49")
        Range("A1").Resize(.Rows.Count, .Columns.Count) = .Value
    End With
End Sub
...
Рейтинг: 0 / 0
Копирование данных из одного листа Excel на другой
    #35260126
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С указанием листа назначения...

Код: plaintext
1.
2.
Sub Copy_Data()
    Sheets("Aff_YL").Range("A1:AG49").Copy Sheets("Лист1").Range("A1")
End Sub

Код: plaintext
1.
2.
3.
4.
Sub Copy_Data()
    With Sheets("Aff_YL").Range("A1:AG49")
        Sheets("Лист1").Range("A1").Resize(.Rows.Count, .Columns.Count) = .Value
    End With
End Sub


KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
Копирование данных из одного листа Excel на другой
    #35260685
Дмитрий_N
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
KL (XL)
С указанием листа назначения...

Код: plaintext
1.
2.
Sub Copy_Data()
    Sheets("Aff_YL").Range("A1:AG49").Copy Sheets("Лист1").Range("A1")
End Sub

Код: plaintext
1.
2.
3.
4.
Sub Copy_Data()
    With Sheets("Aff_YL").Range("A1:AG49")
        Sheets("Лист1").Range("A1").Resize(.Rows.Count, .Columns.Count) = .Value
    End With
End Sub


KL
[MVP - Microsoft Excel]

Спасибо, буду использовать! А как сделать, чтобы при использовании этой конструкции, созранялось исходное форматирование?
big-duke
PasteSpecial xlPasteAll


Если можно, поподробнее.. с синтаксисом
...
Рейтинг: 0 / 0
Копирование данных из одного листа Excel на другой
    #35260775
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий_N...А как сделать, чтобы при использовании этой конструкции, созранялось исходное форматирование?...
Если можно, поподробнее. Исходное форматирование чего, диапазона, который копируем или того, куда вставляем? Какое конкретно форматирование?
...
Рейтинг: 0 / 0
Копирование данных из одного листа Excel на другой
    #35260979
Дмитрий_N
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
KL (XL)
Если можно, поподробнее. Исходное форматирование чего, диапазона, который копируем или того, куда вставляем? Какое конкретно форматирование?

Ситуация такая. Лист "Aff_YL", откуда копируем - имеет разную ширину столбцов, высоту строк и объединенные ячейки. Хотелось, чтобы в "Лист1", куда вставляем, структура переносилась полностью...
...
Рейтинг: 0 / 0
Копирование данных из одного листа Excel на другой
    #35261854
Дмитрий_N
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И еще, у меня появился вопрос. Подскажите, как найти последнюю строку диапазона, чтобы через пустую строку добавить новые данные?
...
Рейтинг: 0 / 0
Копирование данных из одного листа Excel на другой
    #35263477
Дмитрий_N
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дмитрий_NИ еще, у меня появился вопрос. Подскажите, как найти последнюю строку диапазона, чтобы через пустую строку добавить новые данные?
Нашел то, что мне подходит. Лежит здесь, может кому понадобится:

http://www.sql.ru/forum/actualthread.aspx?tid=396213

Я использовал первый вариант с Function LastCell, ищет адрес ячейки во всем листе... Вопрос с форматированием пока открыт... Я пока сделал так.. В подпрограмме, которая копирует данные вручную задал ширину столбцов и строк.. Может есть другой способ?
...
Рейтинг: 0 / 0
Копирование данных из одного листа Excel на другой
    #35264657
Дмитрий_N
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Немного разобрался...
Код: plaintext
Selection.PasteSpecial xlPasteAll
Вставляет данные без сохранение ширины столбцов и строк
Код: plaintext
Selection.PasteSpecial xlPasteColumnWidths
Сохраняет ширину столбцов как у копируемого листа...
Как тоже самое сделать со строками?
...
Рейтинг: 0 / 0
Копирование данных из одного листа Excel на другой
    #35272459
Дмитрий_N
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть решение, догадался не сам, подсказали на другом форуме... Может кому пригодится:
При копировании нужно использовать следущую конструкцию..
Код: plaintext
Selection.EntireRow.Copy
А при вставке, вместе с тем, что было указано в предыдущем посте, нужно добавить..
Код: plaintext
Selection.EntireRow.PasteSpecial xlPasteFormats
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Копирование данных из одного листа Excel на другой
    #37114589
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробовал код работает если есть лист Sheet2, а если понадобиться надо имя листа взять из листа Sheet1 в яйчейках от I2:I37
как сообразить что надо сделать цикл поставить???????????
Код: plaintext
1.
2.
3.
4.
Sub Copy_Data()
With Sheets("Sheet1").Range("A1:H37")
Sheets("Sheet2").Range("A1").Resize(.Rows.Count, .Columns.Count) = .Value
End With
End Sub
...
Рейтинг: 0 / 0
Копирование данных из одного листа Excel на другой
    #37114597
Фотография Ser Artur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Написал так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Sub Copy_Data()
For n =  2  To  45 
m = Range("I" & n)
    With Sheets("Sheet1").Range("A1:H37")
        Sheets.Add.Range("A1").Resize(.Rows.Count, .Columns.Count) = .Value
    End With
Next n
End Sub
Так он мне выдал все 46 листов с одинаковыми данными Как сделать так чтобы поочередно, пошагово
-сначала заполнить лист1
-активировать модуль
-код создал бы первый лист с именем 1

потом
-заполнить лист1 с другими данными
-активировать модуль
-код создал бы первый лист с именем 2
и т.д.
Спасибо
...
Рейтинг: 0 / 0
Копирование данных из одного листа Excel на другой
    #37115893
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что то вроде
Код: plaintext
1.
set ws = Sheets.Add.Range("A1").Resize(.Rows.Count, .Columns.Count) = .Value
ws.name=....
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Копирование данных из одного листа Excel на другой
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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