powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Макрос: Копирование и вставка данных
11 сообщений из 11, страница 1 из 1
Макрос: Копирование и вставка данных
    #36414583
Alisya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет!
Все делается в Excel.
Есть два листа в разных книгах, с первой книги я скопировала данные в буфери эта книга стала активной...
А теперь хочу эти данные вставить во вторую книгу на второй лист, при этом надо сделать эту книгу активной, выделить ячейки "A1:K966" и вставить именно в них данные из буфера.
Не подскажите как это сделать!
Макрос вызывается из второй книги, куда вставляются данные.
Заранее спасибо!
...
Рейтинг: 0 / 0
Макрос: Копирование и вставка данных
    #36414651
Фотография Shamanus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alisya,

если нажмете на запись макроса и проделаете описанные Вами действия, то получите нужный код.
...
Рейтинг: 0 / 0
Макрос: Копирование и вставка данных
    #36414723
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если не обязательно копировать так явно данные в буфер: данные копируются в фоне и вставляются в А1.
"выделить ячейки "A1:K966" и вставить именно в них данные из буфера" - зачем? Достаточно указать начало области копирования.

Код: plaintext
1.
2.
3.
4.
5.
6.
Sub tt()
With GetObject("c:\Книга1.xls").Sheets( 1 )
.[A1:K966].Copy [a1]
.Parent.Close SaveChanges:=False ' или True, закрываем источник
End With
End Sub
...
Рейтинг: 0 / 0
Макрос: Копирование и вставка данных
    #36414778
Alisya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Макрос выглядит так

Sub План()
Dim Path As String
Dim ActiveWB As Workbook
Set ActiveWB = ActiveWorkbook
Worksheets("Лист2").Cells.ClearContents
'ChDir "C:\Documents and Settings\Alisya\Рабочий стол\Для диплома111"
'Workbooks.Open Filename:= _
'"C:\Documents and Settings\Alisya\Рабочий стол\Для диплома111\220201.65_E.xls"
Path = GetFolderPath

Set ex = CreateObject("Excel.Application")

Set oCurrExc = ex.Workbooks.Open(Path)

ex.Visible = True

ex.Sheets("План").Select
Range("A1:K966").Select
Selection.Copy
Windows(ActiveWB.Name).Activate

'ThisWorkbooks.Activate
'Workbooks("ВОРД.xls").Activate

ActiveWB.Sheets("Лист2").Select
Range("A1:K966").Select
ActiveSheet.Paste
'ActiveWB.ActiveSheet.Paste
ActiveSheet.Columns.AutoFit
ActiveSheet.Rows.AutoFit
ex.Quit
End Sub

В конце та самая вставка, как мне сделать чтоб это заработало? =))
...
Рейтинг: 0 / 0
Макрос: Копирование и вставка данных
    #36414875
Фотография Shamanus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alisya,

если вас не интересует способ получения этих данных (я имею ввиду не пугает, что книга будет открываться и закрываться) то код примерно такой

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Sub План()
Dim ActiveBook As String
Dim ActiveWB, NewWB As Workbook

Path = "E:\Бла..Бла..Бла"

Set ActiveWB = ActiveWorkbook

Sheets("Лист2").Cells.ClearContents  ' очищаем лист 2 в текущей книге
  

Set NewWB = Workbooks.Open(Path)  ' открываем новую книгу
    Sheets("План").Select                 ' выбираем лист
    Range("A1:K966").Select              ' выделяем диапазон
    Selection.Copy Destination:=ActiveWB.Sheets("Лист2").Range("A1")     ' копируем диапазон в нашу книгу
    Application.DisplayAlerts = False    ' отключаем уведомления
NewWB.Close                                 'закрываем новую книгу без сохранения
    Application.DisplayAlerts = True     ' включаем уведомления
    


End Sub

если книгу фактически открывать не нужно, а нужно просто получить из нее данные, то это совсем другой метод. Рекордсеты и т.п.
...
Рейтинг: 0 / 0
Макрос: Копирование и вставка данных
    #36414879
Фотография Shamanus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shamanus,

ошибся во второй строке
Dim Path As String вместо Dim ActiveBook As String
...
Рейтинг: 0 / 0
Макрос: Копирование и вставка данных
    #36414915
Alisya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большое спасибо!!!
...
Рейтинг: 0 / 0
Макрос: Копирование и вставка данных
    #36415232
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Чем мой код не подошёл? Коротенько и прозрачно. Копирует с форматами, как в задаче. Немного подкорректировал по месту, поставьте свой путь:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Sub План()
Sheets("Лист2").Cells.ClearContents  ' очищаем лист 2 в текущей книге
With GetObject("c:\Книга1.xls").Sheets( 1 ) 'здесь путь, откуда копировать
.[A1:K966].Copy [a1] 'а1 - это куда копировать
.Parent.Close SaveChanges:=False ' или True, закрываем источник
End With
ActiveSheet.Columns.AutoFit
ActiveSheet.Rows.AutoFit
End Sub
...
Рейтинг: 0 / 0
Макрос: Копирование и вставка данных
    #36415236
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И кстати без переменных, вполне вверху можно Option Explicit добавить :)
...
Рейтинг: 0 / 0
Макрос: Копирование и вставка данных
    #36424620
Alisya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hugo121, спасибо большое за помощь!!!!
Просто сначала ваш код мне был не очень понятен, спасибо за комментарии=)
...
Рейтинг: 0 / 0
Макрос: Копирование и вставка данных
    #36424702
.Михаил.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мона так, копирование только данных из Листа1 в Лист2
Код: plaintext
1.
2.
3.
Dim x
x = Лист1.Range("A1:K966")
Лист2.Range("A1:K966") = x
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Макрос: Копирование и вставка данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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