Макрос переноса всех данных с одного файла в другой excel

Задача состоит в том, чтобы скопировать определенный диапазон текущего листа, открыть другую книгу, и вставить эти скопированные данные в определенную ячейку, сохранить этот файл и закрыть. Ниже приведен код VBA.

Sub Название_Макроса()

'Выделить диапазон который необходимо скопировать
Range("A1:F52").Select
'Скопировать то, что выделено
Selection.Copy
ChDir "путь к папке где лежит файл в который необходимо скопировать"
Workbooks.Open Filename:= "Название файла, который находится в папке, путь к которой указан выше"
'Выделить начальную ячейку в которую необходимо вставить скопированные данные
Range("A6").Select
'Вставить данные
ActiveSheet.Paste
'сохранить текущую книгу
ActiveWorkbook.Save
'Закрыть книгу
ActiveWorkbook.Close
End Sub

Вариант 2: В открывшейся книге запускаем макрос, чтобы он открыл нужную нам книгу, скопировал от туда нужные нам данные и вставил в нашу открытую книгу, закрыв файл из которого эти данные были скопированы

Sub Название_Макроса2()
'Открываем файл с которого нужно скопировать данные
Workbooks.Open Filename:="C:Данные.xlsx"

'Скопировать нужный диапазон в открывшейся книге на листе 1
Workbooks("Данные.xlsx").Worksheets("Лист1").Range("A16:E16").Copy
'Активируем нужную нам книгу
Workbooks("Книга1.xlsm").Activate

'Выделяем и вставляем скопированные данные в ячейку А1
ActiveWorkbook.Worksheets("Лист1").Range("A1").Select
ActiveSheet.Paste

'Закрываем книгу откуда мы скопировали данные
Workbooks("Данные.xlsx").Close

End Sub

Еще пример — Скопировать диапазоны данных из активной открытой книги Excel нескольких листов (в нашем примере 3-х листов) в другую книгу, которая хранится в определенном месте. Данные будут вставлены как значения, плюс будут перенесены форматы ячеек.

Sub Копируем_листы_в_другую_книгу()
Dim bookconst As Workbook
Dim abook As Workbook
Set abook = ActiveWorkbook 'присваиваем перменную активной книге
Set bookconst = Workbooks.Open("C:UsersUserDesktop1.xlsx") 'присваиваем перменную книге куда необходимо копировать данные

'переходим в активную книгу откуда необходимо скопировать данные
abook.Worksheets("Лист1").Activate
Range("A1:I23").Copy 'копируем определенный диапазон листа, укажите свой диапазон
bookconst.Worksheets("Лист1").Activate 'активируем лист куда необходимо вставить данные
Range("A1:I23").Select 'встаем на ячейку А1
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'вставляем только форматы ячеек
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
'второй лист
abook.Worksheets("Лист2").Activate
Range("A1:I23").Copy
bookconst.Worksheets("Лист2").Activate
Range("A1:I23").Select 'выделяем диапазон
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'вставляем только форматы ячеек
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
'третий лист
abook.Worksheets("Лист3").Activate
Range("A1:I23").Copy
bookconst.Worksheets("Лист3").Activate
Range("A1:I23").Select 'выделяем диапазон
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'вставляем только форматы ячеек
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
'сохранить текущую книгу
bookconst.Save
'Закрыть книгу
bookconst.Close
abook.Activate

End Sub

Если статья была вам полезна, то буду благодарен, если вы поделитесь ей со своими друзьями с помощью кнопок расположенных ниже.

Спасибо за внимание.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Sub tt()
    Dim il&, x
    Dim sh1 As Object, sh2 As Object
 
    Set sh1 = ActiveSheet    'Workbooks("Лист 1.xlsx").Sheets(1)
    Set sh2 = Workbooks("Лист 2.xlsx").Sheets(1)
    il = sh2.Cells(sh2.Rows.Count, 10).End(xlUp).Row
    If il = 1 Then il = il + 2 Else il = il + 1
    x = ActiveCell.Row
    With sh2
        .Cells(il, 1) = sh1.Cells(x, 10)
        .Cells(il, 2) = sh1.Cells(x, 9)
        .Cells(il, 3) = sh1.Cells(x, 1)
        .Cells(il, 4) = sh1.Cells(x, 2)
        .Cells(il, 5) = sh1.Cells(x, 3)
        .Cells(il, 6) = sh1.Cells(x, 8)
        .Cells(il, 7) = sh1.Cells(x, 7)
        .Cells(il, 8) = sh1.Cells(x, 6)
        .Cells(il, 9) = sh1.Cells(x, 4)
        .Cells(il, 10) = sh1.Cells(x, 5)
        '        .Cells(il, 11) = sh1.Cells(x, 11)
        '        .Cells(il, 12) = sh1.Cells(x, 12)
        '        .Cells(il, 13) = sh1.Cells(x, 13)
    End With
End Sub
 

nura28

Пользователь

Сообщений: 48
Регистрация: 01.08.2014

#1

13.07.2017 16:38:56

Добрый день!

Помогите,  пожалуйста!
Как макросом из файла Начальные данные вставить данные как значение (числом) в файл Сюда сохраняем (Итоговый файл). На двух файлах по несколько листов (вкладок).
С листа 1 файла Начальные данные на лист Арх файла Сюда сохраняем (Итоговый файл)
С листа 2 файла Начальные данные на лист Новод файла Сюда сохраняем (Итоговый файл)
С листа 3 файла Начальные данные на лист Северод файла Сюда сохраняем (Итоговый файл)

В реальных файлах данных и листов больше, каждый раз разное количество данных.

Так я пользуюсь для активной открытой книги (см ниже).  А если в открытой книге несколько листов ,
что надо добавить в макрос, чтобы на определенный лист копировались данные?

Код
i = 2 
While Cells(i, 1) <> Empty
Cells(i, 2) = "=VLOOKUP(RC[-1],'[Начальные данные.xlsx]1'!C1:C2,2,0)" 
i = i + 1 
Wend
Range("B1:B1000").Select     
Application.CutCopyMode = False     
Selection.Copy     
Range("B1:B1000").Select     
Selection.PasteSpecial Paste:=xlValues  
Application.CutCopyMode = False   
End Sub

Заранее спасибо!

Прикрепленные файлы

  • Сюда сохраняем (Итоговый файл).xlsx (11.44 КБ)
  • Начальные данные.xlsx (10.5 КБ)

Изменено: nura2814.07.2017 15:38:16

 

Nordheim

Пользователь

Сообщений: 3154
Регистрация: 18.04.2017

#2

13.07.2017 19:48:41

конкретно под ваш пример

Код
Sub test()
Dim sh As Worksheet
Dim book1 As Workbook, book2 As Workbook
On Error Resume Next
Set book1 = Workbooks("Начальные данные.xlsx")
Set book2 = Workbooks("Сюда сохраняем (Итоговый файл) (1).xlsx")
With book1
    For Each sh In .Worksheets
        sh.UsedRange.Copy book2.Sheets(sh.Index).Range("a1")
    Next sh
End With
End Sub

Изменено: Nordheim13.07.2017 19:56:48

«Все гениальное просто, а все простое гениально!!!»

 

Nordheim

Пользователь

Сообщений: 3154
Регистрация: 18.04.2017

#3

13.07.2017 19:55:24

этот сохраняет как значения

Код
Sub test()
Dim sh As Worksheet, arr()
Dim book1 As Workbook, book2 As Workbook
On Error Resume Next
Set book1 = Workbooks("Начальные данные.xlsx")
Set book2 = Workbooks("Сюда сохраняем (Итоговый файл) (1).xlsx")
With book1
    For Each sh In .Worksheets
        arr = sh.UsedRange.Value
        book2.Sheets(sh.Index).Range("a1").Resize(UBound(arr), UBound(arr, 2)) = arr
        book2.Sheets(sh.Index).Range("a1").CurrentRegion.Borders.LineStyle = xlContinuous
    Next sh
End With
End Sub

Изменено: Nordheim13.07.2017 19:56:58

«Все гениальное просто, а все простое гениально!!!»

 

nura28

Пользователь

Сообщений: 48
Регистрация: 01.08.2014

Nordheim, НИЧЕГО не происходит по вашему макросу, данные не подтягиваются. Нет ссылок на конкретные листы файлов.

Изменено: nura2814.07.2017 11:12:10

 

Nordheim

Пользователь

Сообщений: 3154
Регистрация: 18.04.2017

Откройте свои файлы. в файле «Сюда сохраняем» удалите все данные и запустите. Макрос писал по 2 ваших файла.
И зачем конкретные листы указывать если у вас в примере индексы листов из которых и в которые переносятся данные совпадают?

«Все гениальное просто, а все простое гениально!!!»

 

nura28

Пользователь

Сообщений: 48
Регистрация: 01.08.2014

Nordheim, удалила все и ничего не подставляется. Наименования листов различаются. В оригинале у меня будет разное количество листов и их порядок в 1 и 2 файле отличается.  

 

Nordheim

Пользователь

Сообщений: 3154
Регистрация: 18.04.2017

#7

14.07.2017 11:51:11

А так?

Код
Sub test()
Dim sh As Worksheet, arr()
Dim book1 As Workbook, book2 As Workbook
On Error Resume Next
Set book1 = Workbooks("Начальные данные.xlsx")
Set book2 = Workbooks("Сюда сохраняем (Итоговый файл).xlsx")
With book1
    For Each sh In .Worksheets
        arr = sh.UsedRange.Value
        book2.Sheets(sh.Index).Range("a1").Resize(UBound(arr), UBound(arr, 2)) = arr
        book2.Sheets(sh.Index).Range("a1").CurrentRegion.Borders.LineStyle = xlContinuous
    Next sh
End With
End Sub

Изменено: Nordheim14.07.2017 11:51:36

«Все гениальное просто, а все простое гениально!!!»

 

nura28

Пользователь

Сообщений: 48
Регистрация: 01.08.2014

Nordheim, Спасибо работает! Т.е получается с 1 листа тянется на 1 лист др файла? А если в начальном файле будет больше листов, их лучше в конец поставить или скрыть? на что это может повлиять?

 

Nordheim

Пользователь

Сообщений: 3154
Регистрация: 18.04.2017

#9

14.07.2017 11:59:28

Вместо функции

Код
While .... Wend

, предпочтительней

Код
Do .....Loop

«Все гениальное просто, а все простое гениально!!!»

 

Nordheim

Пользователь

Сообщений: 3154
Регистрация: 18.04.2017

В вашем примере индексы листов совпадают поэтому привязку делал по индексам, если индекс листа с которого переносится будет отличаться от  индекса листа на который переносятся данные, то нужно макрос писать немного по другому. Тот вариант кот. прописан в вашем примере очень просто реализовывается. А что куда переносить и как копировать нужно смотреть на конкретном примере.

Изменено: Nordheim14.07.2017 12:03:29

«Все гениальное просто, а все простое гениально!!!»

 

Nordheim

Пользователь

Сообщений: 3154
Регистрация: 18.04.2017

#11

14.07.2017 12:06:52

Цитата
nura28 написал:
на что это может повлиять?

в идеале если наименования листов в файле получателе есть в файле отправителе то тут легко решаемо, или у вас заранее известно с какого листа значения будут переносится на какой лист.

«Все гениальное просто, а все простое гениально!!!»

 

nura28

Пользователь

Сообщений: 48
Регистрация: 01.08.2014

Nordheim, а где в экселе посмотреть индексы уже переименованных листов?  

 

Юрий М

Модератор

Сообщений: 60585
Регистрация: 14.09.2012

Контакты см. в профиле

Индекс — это порядковый номер листа.

 

nura28

Пользователь

Сообщений: 48
Регистрация: 01.08.2014

Нашла сама. Если правой кнопкой на лист встать и нажать Исходный текст, то через vba видно номер листа.

 

Nordheim

Пользователь

Сообщений: 3154
Регистрация: 18.04.2017

#15

14.07.2017 12:26:41

Код
Cntr+G

 далее в появившемся окне

Код
 Immediate 

вставляете

Код
 ? Sheets(название листа).Index 

и жмете

Код
 Enter 

в том же окне отобразится №индекса листа!

«Все гениальное просто, а все простое гениально!!!»

 

nura28

Пользователь

Сообщений: 48
Регистрация: 01.08.2014

А №индекса листа можно менять? У меня их больше 100

 

Nordheim

Пользователь

Сообщений: 3154
Регистрация: 18.04.2017

Индек это очередность расположения листа в книге, передвинете лист и индекс сменится :)

«Все гениальное просто, а все простое гениально!!!»

 

nura28

Пользователь

Сообщений: 48
Регистрация: 01.08.2014

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

 

Nordheim

Пользователь

Сообщений: 3154
Регистрация: 18.04.2017

а как узнать из какого в какой лист?

«Все гениальное просто, а все простое гениально!!!»

 

nura28

Пользователь

Сообщений: 48
Регистрация: 01.08.2014

Nordheim, в 1 сообщении файлы изменила, добавила Листы.
Из файла Начальные данные лист молочка в файл Сюда сохраняем (Итоговый файл) на лист Свод в столбец Молочка,
Из файла Начальные данные лист месяц в файл Сюда сохраняем (Итоговый файл) на лист Свод в столбец Город1, Город2 и Город3 соответственно  

 

Nordheim

Пользователь

Сообщений: 3154
Регистрация: 18.04.2017

в файле сюда покажите как должно быть!

«Все гениальное просто, а все простое гениально!!!»

 

nura28

Пользователь

Сообщений: 48
Регистрация: 01.08.2014

Nordheim, в 1 сообщении показала

 

Nordheim

Пользователь

Сообщений: 3154
Регистрация: 18.04.2017

Вообще запутался, почему у вас в файле источнике таблица цельная а в файле принимающем между данными разрыв, это уже не копирование а совсем другой код необходимо писать.

«Все гениальное просто, а все простое гениально!!!»

 

nura28

Пользователь

Сообщений: 48
Регистрация: 01.08.2014

Nordheim, да не копирование будет. ВПР я притягиваю, а потом вставить как значение. Разрывов несколько будет. Столбцов тоже больше и в разном порядке.

Изменено: nura2814.07.2017 16:02:16

 

Nordheim

Пользователь

Сообщений: 3154
Регистрация: 18.04.2017

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

«Все гениальное просто, а все простое гениально!!!»

 

nura28

Пользователь

Сообщений: 48
Регистрация: 01.08.2014

Nordheim, Мне просто нужно знать, как правильно прописать, чтобы с листа определенного одного файла копировалось в другой файл с определенным листом на коде vba. Остальное я сама сделаю, как мне удобно))

 

Nordheim

Пользователь

Сообщений: 3154
Регистрация: 18.04.2017

так я же написал в первом коде, просто вместо индексов ставьте наименование листов вот собственно и все.
Удачи!

«Все гениальное просто, а все простое гениально!!!»

 

nura28

Пользователь

Сообщений: 48
Регистрация: 01.08.2014

Nordheim, можно к моему примеру
book2.Sheets(sh.Index).Range(«a1»).Resize(UBound(arr), UBound(arr, 2)) = arr
так надо book2.Sheets(Свод).Range(«a1»).Resize(UBound(arr), UBound(arr, 2)) = arr?
Или как правильно?

 

Nordheim

Пользователь

Сообщений: 3154
Регистрация: 18.04.2017

(«Свод») Наименование листа  в кавычках

Изменено: Nordheim14.07.2017 17:11:36

«Все гениальное просто, а все простое гениально!!!»

 

Nordheim

Пользователь

Сообщений: 3154
Регистрация: 18.04.2017

#30

14.07.2017 17:12:31

Но копировать будет, всегда в ячейку «a1»
Этот способ идет в разрез с вашим примером, т.к. копирует таблицу без разрывов, о чем я ранее писал.

Изменено: Nordheim14.07.2017 17:15:12

«Все гениальное просто, а все простое гениально!!!»

Всем, кто работает с Excel, периодически приходится переносить данные из одной таблицы в другую, а зачастую и просто копировать массивы в разные файлы. При этом необходимо сохранять исходные форматы ячеек, формулы, что в них находятся, и прочие переменные, которые могут потеряться при неправильном переносе.

Давайте разберёмся с тем, как переносить таблицу удобнее всего и рассмотрим несколько способов. Вам останется лишь выбрать тот, что наилучшим образом подходит к конкретной задачи, благо Microsoft побеспокоилась об удобстве своих пользователей в любой ситуации.

Копирование таблицы с сохранением структуры

Если у вас есть одна или несколько таблиц, форматирование которых необходимо сохранять при переносе, то обычный метод Ctrl+CCtrl+V не даст нужного результата.

Исходная таблица

В результате мы получим сжатые или растянутые ячейки, которые придётся вновь выравнивать по длине, чтобы они не перекрывали информацию.

Искажённая таблица

Расширять вручную таблицы размером в 20-30 ячеек, тем более, когда у вас их несколько, не самая увлекательная задача. Однако существует несколько способов значительно упростить и оптимизировать весь процесс переноса при помощи инструментов, уже заложенных в программу.

Способ 1: Специальная вставка

Этот способ подойдёт в том случае, если из форматирования вам достаточно сохранить ширину столбцов и подтягивать дополнительные данные или формулы из другого файла/листа нет нужды.

  1. Выделите исходные таблицы и проведите обычный перенос комбинацией клавиш Ctrl+CCtrl+V.
  2. Как мы помним из предыдущего примера, ячейки получаются стандартного размера. Чтобы исправить это, выделите скопированный массив данных и кликните правой кнопкой по нему. В контекстном меню выберите пункт «Специальная вставка».

Контекстное меню

В результате у вас получится таблица идентичная той, что была в первом файле. Это удобно в том случае, если у вас десятки столбцов и выравнивать каждый, стандартными инструментами, нет времени/желания. Однако в этом методе есть недостаток — вам все равно придётся потратить немного времени, ведь изначально скопированная таблица не отвечает нашим запросам. Если это для вас неприемлемо, существует другой способ, при котором форматирование сохранится сразу при переносе.

Способ 2: Выделение столбцов перед копированием

В этом случае вы сразу получите нужный формат, достаточно выделить столбцы или строки, в зависимости от ситуации, вместе с заголовками. Таким образом, изначальная длина и ширина сохранятся в буфере обмена и на выходе вы получите нужный формат ячеек. Чтобы добиться такого результата, необходимо:

Выделение строк

  1. Выделить столбцы или строки с исходными данными.
  2. Просто скопировать и вставить, получившаяся таблица сохранит изначальный вид.

В каждом отдельном случае рациональней использовать свой способ. Однако он будет оптимален для небольших таблиц, где выделение области копирования не займёт у вас более двух минут. Соответственно, его удобно применять в большинстве случаев, так как в специальной вставке, рассмотренной выше, невозможно сохранить высоту строк. Если вам необходимо выровнять строки заранее – это лучший выбор. Но зачастую помимо самой таблицы необходимо перенести и формулы, что в ней хранятся. В этом случае подойдёт следующий метод.

Способ 3: Вставка формул с сохранением формата

Специальную вставку можно использовать, в том числе, и для переноса значений формул с сохранением форматов ячеек. Это наиболее простой и при этом быстрый способ произвести подобную операцию. Может быть удобно при формировании таблиц на распечатку или отчётностей, где лишний вес файла влияет на скорость его загрузки и обработки.

Чтобы выполнить операцию, сделайте следующее:

  1. Выделите и скопируйте исходник.
  2. В контекстном меню вставки просто выберите «Значения» и подтвердите действие.

Вставка значений

Вместо третьего действия можно использовать формат по образцу. Подойдёт, если копирование происходит в пределах одного файла, но на разные листы. В простонародье этот инструмент ещё именуют «метёлочкой».

Перенос таблицы из одного файла в другой не должен занять у вас более пары минут, какое бы количество данных не находилось в исходнике. Достаточно выбрать один из описанных выше способов в зависимости от задачи, которая перед вами стоит. Умелое комбинирование методов транспортировки таблиц позволит сохранить много нервов и времени, особенно при составлении квартальных сводок и прочей отчётности. Однако не забывайте, что сбои могут проходить в любой программе, поэтому перепроверяйте данные, прежде чем отправить их на утверждение.

5 различных методов переноса данных с одного листа Excel на другой

Как мы все знаем, Microsoft Excel — очень полезная и популярная рабочая книга, которую пользователи могут хранить любые важные данные.

В Microsoft Excel пользователи могут выполнять несколько различных типов задач, таких как автоматически переносить данные с одного листа Excel на другой, обновлять один лист Excel с другого листа , копировать данные с одного листа на другой в Excel и т. д. для удобства.

Но сегодня в этом моем сообщении блога я расскажу о , как автоматически копировать данные из одной ячейки в другую в Excel ? Кроме того, узнайте , как автоматически обновлять один лист Excel с другого листа, автоматически переносить данные с одного листа Excel на другой, и многое другое подробно.

Итак, просто внимательно просмотрите этот блог.

Практический сценарий

Хорошо, сначала я должен упомянуть, что я полный любитель когда дело доходит до превосходства. У меня нет опыта работы с VBA или макросами, поэтому, если вы не уверены, знаю ли я что-то еще, вероятно, не знаю.

У меня есть рабочая тетрадь с 6 листами внутри; один из листов — мастер; это просто остальные 6 листов, составленные в один большой. Мне нужно настроить его так, чтобы любые новые данные, введенные в новые отдельные листы, автоматически вводились в мастер-лист в первой пустой строке.

Столбцы не одинаковы на всех листах. . Надеюсь, здесь профи будет легче, чем мне, в этом я бился головой о стену. Я буду тщательно проверять эту ветку, поэтому, если вам понадобится дополнительная информация, просто дайте мне знать …

Заранее благодарим за любую помощь.

Источник: https://ccm.net/forum/affich-1019001-automatically-update-master-worksheet-from- другие рабочие листы

Методы передачи данных из одной книги Excel в другую

Существует множество различных способов переноса данных из одной книги Excel в другую , и они следующие:

Метод № 1: автоматически Обновление одного листа Excel с другого листа

В книге MS Excel мы можем легко обновить данные, связав один лист с другим. Эта ссылка известна как динамическая формула, которая автоматически передает данные из одной книги Excel в другую .

Одна книга Excel называется источником рабочий лист , где эта ссылка автоматически переносит данные рабочего листа, а другая книга называется целевым листом , в котором он автоматически обновляет данные рабочего листа и содержит формулу связи.

Ниже приведены две разные точки для связывания Excel. данные книги для автоматических обновлений.

1) С использованием функции копирования и вставки

  • В исходный лист, выберите и скопируйте данные, которые вы хотите связать на другом листе.
  • Теперь на целевом листе Вставьте данные, к которым вы связали исходный лист ячейки.
  • После этого выберите меню Вставить ссылку из Другие параметры вставки в книге Excel

  • Сохраните всю свою работу из исходного рабочего листа перед его закрытием.

2) Введите формулу вручную

  • Откройте целевой рабочий лист, коснитесь ячейки, в которой есть формула связи, и поместите знак равенства (=) поперек нее.
  • Теперь перейдите к источник ш eet и коснитесь ячейки, в которой есть данные. нажмите Enter на клавиатуре и сохраните свои задачи.

Примечание- Всегда помните одну вещь, что формат исходного рабочего листа и конечный рабочий лист одинаковы.

Метод № 2: обновить электронную таблицу Excel данными из другой электронной таблицы

Чтобы обновить электронные таблицы Excel данными из другой электронной таблицы, просто следуйте приведенным ниже пунктам, которые будут применимы к версии Excel 2019, 2016, 2013, 2010, 2007.

  • Сначала перейдите в меню Данные .
  • Выберите параметр Обновить все

  • Здесь вы должны увидеть, когда и как обновляется соединение
  • Теперь щелкните любую ячейку, содержащую подключенные данные.
  • Снова в меню Данные , cli ck на стрелке рядом с параметром Обновить все и выберите Свойства соединения

  • После этого в меню Использование установите параметры которые вы хотите изменить.
  • На вкладке Использование установите любые параметры, которые вы хотите изменить.

Примечание. Если размер книги данных Excel большой, я рекомендую регулярно проверять меню Включить фоновое обновление .

Метод № 3: Как автоматически скопировать данные из одной ячейки в другую в Excel

Чтобы скопировать данные из одной ячейки в другую в Excel, просто выполните следующие пункты, указанные ниже:

  • Сначала откройте исходный рабочий лист и целевой рабочий лист.
  • На исходном листе перейдите к листу, который вы хотите переместить или скопировать.
  • Теперь нажмите меню Главная и выберите параметр Формат .
  • Затем выберите «Переместить или скопировать лист» в разделе «Организовать листы».
  • После этого снова в в меню Главная выберите параметр Формат в группе ячеек.
  • Здесь в Переместить или скопировать выберите целевой лист, и Excel отобразит только открытые листы в списке.

  • Иначе, если вы хотите скопировать рабочий лист вместо перемещения, сделайте копию книги Excel перед

  • Наконец, нажмите ОК кнопку, чтобы скопировать или переместить целевую электронную таблицу Excel.

Метод № 4: Как скопировать данные с одного листа на другой в Excel с помощью формулы

Вы можете копировать данные с одного листа на другой в Excel с помощью формулы . Вот шаги, которые необходимо выполнить:

  • Для копирования и вставки ячейки Excel в текущий рабочий лист Excel, , например; скопируйте ячейку От A1 до D5, вы можете просто выбрать целевую ячейку D5, затем ввести = A1 и нажать клавишу Enter, чтобы получить значение A1.
  • Для копирования и вставки ячеек с одного рабочего листа на другой, например скопируйте ячейку A1 листа Sheet1 в ячейку D5 листа Sheet2, выберите ячейку D5 на листе Sheet2, затем введите = Sheet1! A1 и нажмите клавишу Enter, чтобы получить значение.

Метод № 5: копирование данных с одного листа на другой в Excel с помощью макросов

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

  • Правильно сохраняйте расширение файла в вашу книгу Excel.
  • Не обязательно, чтобы ваша электронная таблица имела поддержку макросов для выполнения этой задачи.
  • Код Выбранные вами файлы также могут быть сохранены на другом листе.
  • Поскольку коды уже указывают детали, нет необходимости сначала активировать книгу или ячейки Excel.
  • Таким образом, ниже приведен код для выполнения этой задачи.

Sub OpenWorkbook ()
‘Открыть книгу
‘Метод открытия требует ссылки на полный путь к файлу.
Workbooks.Open «C: Users username Documents New Data.xlsx»

‘ Метод открытия имеет дополнительные параметры
‘Workbooks.Open (FileName, UpdateLinks, ReadOnly, Format, Password, WriteResPassword, IgnoreReadOnlyRecommended, Origin, Delimiter, Editable, Notify, Converter, AddToMru, Local, CorruptLoad)

End Sub

Sub CloseWorkbook ()
‘Закройте книгу
Workbooks («New Data.xlsx»). Close SaveChanges: = True
‘Метод Close имеет дополнительные параметры
‘ Workbooks.Close (SaveChanges, Filename, RouteWorkbook)

End Sub

Рекомендуемое решение: средство восстановления и восстановления MS Excel

Когда вы выполняете свою работу в MS Excel и по ошибке или случайно делаете это не сохранять данные книги, иначе ваш рабочий лист будет удален, тогда у нас есть для вас профессиональный инструмент восстановления, например MS Excel Repair & Recovery Tool .

С С помощью этого инструмента вы также можете легко восстановить все потерянные данные или поврежденные файлы Excel. Это очень полезное программное обеспечение, позволяющее с легкостью возвращать все типы файлов MS Excel .

Как скопировать таблицу в Excel

Пользователям, работающим с офисным пакетом MS Excel, требуется создавать дубликаты таблиц. Поэт.

Как скопировать таблицу из Excel в Excel

  • копировать объект по умолчанию;
  • копировать значения;
  • копировать таблицу с сохранением ширины столбца;
  • копировать лист.

как скопировать таблицу из excel в excel

  • Выделить диапазон, необходимый для копирования.
  • Скопировать область понравившимся способом: кликнуть правой кнопкой мыши (ПКМ) по выделенной области и выбрать опцию «Копировать» или нажать CTRL+C, или активировать пиктограмму на панели инструментов в блоке «Буфер обмена» (вкладка «Главная»).
  • Открыть другой лист или ту область, где будет размещаться дубликат.
  • Активировать клетку, которая станет верхней левой ячейкой новой таблицы.
  • Вставить объект одним из способов: через контекстное меню (ПКМ – Вставить) или CTRL+V, или нажатием на пиктограмму «Вставить» на панели инструментов на вкладке «Главная».
  1. Выделить диапазон, необходимый для копирования.
  2. Скопировать область удобным способом.
  3. Открыть другой лист или ту область, где будет размещаться дубликат.
  4. Активировать клетку, которая станет верхней левой ячейкой новой таблицы.
  5. Вставить объект удобным способом.
  6. Раскрыть пиктограмму «Вставить».
  7. Установить переключатель на опцию «Только значения».
  • Вставленный объект лишается исходных форматов, т.е. на экране отображаются только значения. Если пользователю необходимо сохранить исходное форматирование и указать значения, то нужно активировать опцию «Значение и форматы оригинала».
  • Подобные опции отображаются в контекстном меню, пункте «Специальная вставка».
  • Если необходимо вставить только значения и сохранить форматирование числовых данных, то пользователь выбирает опцию «Значения и форматы чисел». В таком случае форматирование таблицы не сохраняется. На экране отображается значения и формат числовой информации.
  1. Выполнить пункты 1-6 из алгоритма «Копирование значений».
  2. При раскрытии пиктограммы вставки выбрать опцию «Сохранить ширину столбцов».

как скопировать таблицу в эксель без изменений

Макрос для переноса данных из одного файла в другой

Omeg

Дата: Четверг, 17.01.2013, 16:37 |
Сообщение № 1

Группа: Пользователи

Ранг: Прохожий

Сообщений: 6


Репутация:

0

±

Замечаний:
0% ±


Помогите пожалуйста.
Очень нужен макрос, но нет опыта в написании. Автоматическим макросом не получается выполнить все требования.
Суть в чем: есть два файла – форма 1 и форма 2 (общий список) Необходимо данные из файла №1 перенести в общий список (Форма 2). Файл 1 всегда стандартный, меняется только данные.
Алгоритм такой: Сначала копируется в форму 2 номер исполнительного листа, если он уже есть в списке, то находит эту строку и меняет ее, если нет в списке – с новой строки создает запись. Далее в эту строку подтягивает все остальные данные с формы 1 (ФИО, основной долг, удержания….все по таблице). В конце строки вставляет текущую дату.
Не могу понять как это все сотворить, помогите у кого есть возможность и знания

К сообщению приложен файл:

_1.xlsx
(10.7 Kb)
·

_2—.xlsx
(35.6 Kb)

Сообщение отредактировал PelenaЧетверг, 17.01.2013, 16:51

 

Ответить

GWolf

Дата: Четверг, 17.01.2013, 18:03 |
Сообщение № 2

Группа: Пользователи

Ранг: Новичок

Сообщений: 34


Репутация:

3

±

Замечаний:
0% ±


Добрый вечер, уважаемый Omeg!

Пометте цветом, пожалуйста, блоки формы, количество строк в которых может изменятся. Или же форма неизменна ни по строкам ни по столбцам?


Путей к вершине множество. Этот один из многих…

 

Ответить

Omeg

Дата: Четверг, 17.01.2013, 19:14 |
Сообщение № 3

Группа: Пользователи

Ранг: Прохожий

Сообщений: 6


Репутация:

0

±

Замечаний:
0% ±


Добрый вечер, уважаемый GWolf!
Пометил строки, количество которых может изменяться. Если это сильно осложняет положение, можно количество полей оставить в таком виде)
Спасибо что откликнулись, два дня сижу с книгой по VBA, но опыта нет, до этого не приходилась делать такие задачи. Очень трудно сразу сообразить что к чему((

К сообщению приложен файл:

0058050.xlsx
(10.8 Kb)

 

Ответить

GWolf

Дата: Четверг, 17.01.2013, 19:56 |
Сообщение № 4

Группа: Пользователи

Ранг: Новичок

Сообщений: 34


Репутация:

3

±

Замечаний:
0% ±


Доброй ночи, уважаемый Omeg!

Пока ждал от Вас ответа, набросал макрос для неизменного количества строк в файле-источнике:

полагаю, что в виду того, что Вы

Цитата (Omeg)

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

мой труд не будет бесполезен. Для случая с изменяющимися координатами «Итого начислено» и «Итого удержано» код будет несколько другим. Если будете иметь немного терпения то я таки и его Вам напишу!
С уважением GWolf.

К сообщению приложен файл:

_1.xlsm
(32.1 Kb)
·

_2-.xlsm
(33.4 Kb)


Путей к вершине множество. Этот один из многих…

Сообщение отредактировал GWolfЧетверг, 17.01.2013, 20:01

 

Ответить

Omeg

Дата: Четверг, 17.01.2013, 20:07 |
Сообщение № 5

Группа: Пользователи

Ранг: Прохожий

Сообщений: 6


Репутация:

0

±

Замечаний:
0% ±


Спасибо Огромное!!!!! Вы меня очень выручили!!!! Я бы не справился точно!!!
Уважаемы GWolf, если у вас будет свободное время и желание, напишите пожалуйста еще для случая с изменяющимися координатами «Итого начислено» и «Итого удержано».
Я Вам крайне благодарен! Вы правда меня очень выручили))

 

Ответить

GWolf

Дата: Четверг, 17.01.2013, 20:34 |
Сообщение № 6

Группа: Пользователи

Ранг: Новичок

Сообщений: 34


Репутация:

3

±

Замечаний:
0% ±


Цитата (Omeg)

для случая с изменяющимися координатами «Итого начислено» и «Итого удержано»

на скрепке.
В файле:
— по зеленой кнопке — с неизменными координатами;
— по смайлику «Улыбка» — с изменяющимися координатами «Итого начислено» и «Итого удержано»

Успехов! Обращайтесь…
С уважением GWolf.

К сообщению приложен файл:

9311104.xlsm
(33.1 Kb)


Путей к вершине множество. Этот один из многих…

Сообщение отредактировал GWolfЧетверг, 17.01.2013, 20:39

 

Ответить

Omeg

Дата: Четверг, 17.01.2013, 21:38 |
Сообщение № 7

Группа: Пользователи

Ранг: Прохожий

Сообщений: 6


Репутация:

0

±

Замечаний:
0% ±


Спасибо огромное!

 

Ответить

Omeg

Дата: Пятница, 18.01.2013, 13:23 |
Сообщение № 8

Группа: Пользователи

Ранг: Прохожий

Сообщений: 6


Репутация:

0

±

Замечаний:
0% ±


Сегодня тестил, отлично работает. Только второй вариант ошибку почему то выдает, отмечает первую строку в макросе, не могу понять что ему нужно. Но первый вариант работает, пользуюсь им. Еще раз спасибо!

 

Ответить

GWolf

Дата: Понедельник, 21.01.2013, 08:37 |
Сообщение № 9

Группа: Пользователи

Ранг: Новичок

Сообщений: 34


Репутация:

3

±

Замечаний:
0% ±


Доброго дня, уважаемый Omeg!

Вы писали:

Цитата (Omeg)

Только второй вариант ошибку почему то выдает, отмечает первую строку в макросе, не могу понять что ему нужно.

Посмотрел код, действительно это моя недоработка, за что приношу свои извинения. Старый вариант кода: [vba]

Код

Sub AddInFlOu_Щелкнуть()
       ‘Ответ на нажатие смайлика «Улыбка»
       Dim tPath As String
       Dim wbOp As Object
       Dim stroka As String
       Dim flag As Boolean
       Dim nR As Long, nREndFrm As Long

                 Dim P_familija As String, P_imja  As String, P_otcestwo  As String
       Dim P_NomIspList  As String
       Dim P_SumOsnDolg  As String, P_SumUderj  As String, P_SumPerecisl  As String

                 nREndFrm = 4
       Do
           nREndFrm = nREndFrm + 1
       Loop While .Cells(nREndFrm, 1).Text <> «Итого удержано»

                 If nREndFrm = 65000 Then MsgBox «Что-то с формой не так!?» & Chr(10) & _
                      «Не могу найти ячейку в первой колонке» & Chr(10) & _
                      «с фразой <Итого удержано>», vbInformation + vbOKOnly, «Нештатное завершение!»

[/vba]

В строке [vba]

Код

Loop While .Cells(nREndFrm, 1).Text <> «Итого удержано»

[/vba] точка, с которой начинается «фраза» указывает что у «фразы» есть начало. Обычно это конструкция With … End With. В данном случае я счел нецелесообразным применение такой конструкции, но «фразу» не поправил — поторопился. Т.о. строка кода должена выглядеть так:
[vba]

Код

Loop While ThisWorkbook.ActiveSheet.Cells(nREndFrm, 1).Text <> «Итого удержано»

[/vba]

В прилагаемом файле ошибка мною исправлена.


Путей к вершине множество. Этот один из многих…

Сообщение отредактировал GWolfПонедельник, 21.01.2013, 08:43

 

Ответить

Omeg

Дата: Понедельник, 21.01.2013, 09:26 |
Сообщение № 10

Группа: Пользователи

Ранг: Прохожий

Сообщений: 6


Репутация:

0

±

Замечаний:
0% ±


Все заработало идеально!! Спасибо огромное за помощь!!!!

 

Ответить

Муля2010

Дата: Понедельник, 21.01.2013, 16:49 |
Сообщение № 11

Группа: Проверенные

Ранг: Обитатель

Сообщений: 290


Репутация:

12

±

Замечаний:
0% ±


Цитата (Omeg)

Все заработало идеально!! Спасибо огромное за помощь!!!!
Все заработало идеально!! Спасибо огромное за помощь!!!!Omeg

Доброго дня всем!
Omeg
Если это возможно, выложите пожалуйста свой работающий файл на форум. А то у меня во вновь созданую книгу (на чистый лист) одна строка копируется , но только одна строка ИТОГов. А вот меняю ФИО на другое, чтобы продолжить список, и не копирует. Копирует только, когда вручную удаляю предыдущую строку.
В то же время, если я правильно понял условия задачи, новые даные, то есть, новая строка с другими даными, должна добавляться в список (ниже предыдущей).
А вот у ваш шаблон, совсем ничего не копирует.

К сообщению приложен файл:

1686785.rar
(37.4 Kb)


С ув. Муля!

 

Ответить

DiRT_ms

Дата: Вторник, 22.01.2013, 12:43 |
Сообщение № 12

Группа: Пользователи

Ранг: Прохожий

Сообщений: 1


Репутация:

0

±

Замечаний:
0% ±


Здраствуйте! У меня схожая проблема с Omeg, только порядок действий не много другой. Есть форма отчетности (в ней меняется только кол-во строк max значение 80 строк) и сводная таблица этих форм. Суть проблемы в том что бы загрузить данные из закрытого файла формы отчетности в открытый файл сводной таблицы.
Здесь на форуме нашел внушительный список макросов, среди которых есть вот такие:

Я думаю что эти макросы должны участвовать в данной выгрузке, но как их правильно применить не хватает навыков sad

Если кому не трудно, прошу поставить на путь истинный в написании данной задачи)

К сообщению прилагаю файл отчетной формы и сводной формы. Заранее спасибо тем кто откликнется:)

[admin]DiRT_ms, оформляйте коды тегами![/admin]

Сообщение отредактировал DiRT_msСреда, 23.01.2013, 10:27

 

Ответить

GWolf

Дата: Четверг, 31.01.2013, 13:29 |
Сообщение № 13

Группа: Пользователи

Ранг: Новичок

Сообщений: 34


Репутация:

3

±

Замечаний:
0% ±


Добрый день!

Цитата (DiRT_ms)

Суть проблемы в том что бы загрузить данные из закрытого файла формы отчетности в открытый файл сводной таблицы.

Если немножичко погуглить интернет, то можно выяснить следующую особенность: Если нам нужно загрузить из ЗАКРЫТОЙ книги данные, то мы эту книгу должны таки ОТКРЫТЬ, только не руками, а программно! Ну а дальше все как всегда: идем по записям ищем то, что нам нужно и переносим туда куда нужно. После такой «прогулки» незабываем книгу-источник ЗАКРЫТЬ, опять же программно!

Вы можете спросить: — Почему нет кода? — Ответ прост! Код есть! Сообщение № 4. Если кто не понял — спрашивайте — отвечу.


Путей к вершине множество. Этот один из многих…

Сообщение отредактировал GWolfЧетверг, 31.01.2013, 13:33

 

Ответить

alya

Дата: Вторник, 16.04.2013, 20:48 |
Сообщение № 14

Группа: Пользователи

Ранг: Прохожий

Сообщений: 2


Репутация:

0

±

Замечаний:
0% ±


Добрый день! Прощу о помощи. не могу объединить макрос переноса данных из одного файла в другой с функцией ВПР.
есть два файла (книга 1 и книга 2 — названия всегда разные). В книгу 1 нужно перенести данные по обещанной цене из книги 2.
Помогите кому не трудно.

К сообщению приложен файл:

_1.xls
(52.5 Kb)

Сообщение отредактировал alyaВторник, 16.04.2013, 20:56

 

Ответить

alya

Дата: Вторник, 16.04.2013, 20:50 |
Сообщение № 15

Группа: Пользователи

Ранг: Прохожий

Сообщений: 2


Репутация:

0

±

Замечаний:
0% ±


книга 2

Сообщение отредактировал alyaВторник, 16.04.2013, 20:56

 

Ответить

nur91

Дата: Суббота, 24.05.2014, 20:37 |
Сообщение № 16

Группа: Пользователи

Ранг: Прохожий

Сообщений: 2


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Всем, доброй ночи!
У меня есть маленькая проблема в работе макроса.
Суть задания: из файла «по бригадам.xls» найти итоговые суммы по определенным строкам и записать в файл «форма.xls». Это я реализовала.
А теперь проблемка. Например: нужно найти строку «Компенсация отпуска». В файле «по бригадам.xls» в 01 бригаде 00 участок такой записи нет, и значит в файле «форма.xls» должно быть пусто. А макрос находит эту запись в другой бригаде(03 бригада 02 участок) и записывает в 01 бригаду 00 участок.
Не могу понять как это сотворить,помогите у кого есть возможность и знания.

К сообщению приложен файл:

4747620.rar
(48.7 Kb)

 

Ответить

Понравилась статья? Поделить с друзьями:
  • Макрос перемещения ячейки excel
  • Макрос при закрытии книги excel
  • Макрос переключения листов в excel
  • Макрос при загрузке excel
  • Макрос переименовывающий листы excel