Данная статья о том, как связать таблицы, чтобы данные из одной таблицы автоматически переносились во вторую.
Приведу три способа Автоматического переноса данных с одного листа программы «Эксель» в другой.
Первый, самый простой и примитивный способ связи двух таблиц на разных листах документа -вставка данных при помощи опции специальной вставки.
Рассмотрим, как соединить две таблицы по шагам.
Первый шаг.
Необходимо выделить ту таблицу, из которой будут транслироваться данные во вторую таблицу.
Второй шаг.
Копировать информацию сочетанием клавиш ctrl+C или вызвав контекстное меню правой кнопкой мыши и кликнув по пункту меню «Копировать»
Третий шаг.
Перейти на лист документа «Excel», в который Вы планируете транслировать информацию из первой таблицы.
Четвертый шаг.
Поставить курсор в первую (левую верхнюю) ячейку таблицы и выбрать в меню «Вставка» пункт «Вставить связь». В некоторых версиях программы «Excel» этот пункт находится в меню «Специальная вставка»
После вставки связи следует отформатировать вид ячеек – привести их к надлежащему виду.
Второй способ переноса данных из одной таблицы в другую — это использование сводных таблиц в программе «Excel».
При использовании данного метода роль второй таблицы («реципиента») играет сама сводная таблица.
При клике правой кнопкой мыши по сводной таблице и нажатии на пункт «Обновить» сводная таблица автоматически перенесет все данные из связанного массива информации («таблицы донора»).
О том, как в «Эксель» создавать сводные таблицы подробно написано в статье:
Как делать сводные таблицы в программе «Excel» и для чего они нужны.
Третий способ самый эффективный и наиболее автоматизированный — это использование меню надстройки «Power Query».
Правда нужно отметить, что этот способ подходит только пользователям Excel 2016 и пользователям Excel 2013и выше с установленной надстройкой «Power Query».
Смысл способа в следующем:
Необходимо открыть вкладку «Power Query». В разделе «Данные Excel» нажимаем кнопку (пиктограмму) «Из таблицы».
Далее нужно выбрать диапазон ячеек, из которых нужно «притянуть» информацию и нажимаем «Ок».
После выбора области данных появится окно настройки вида новой таблицы. В этом окне Вы можете настроить последовательность вывода столбцов и удалить ненужные столбцы.
После настройки вида таблицы нажмите кнопку «Закрыть и загрузить»
Обновление полученной таблицы происходит кликом правой кнопки мыши по названию нужного запроса в правой части листа (список «Запросы книги»). После клика правой кнопкой мыши в выпадающем контекстном меню следует нажать на пункт «Обновить»
werdan Пользователь Сообщений: 28 |
Добрый день. Нужна Ваша помощь. Форум полистал, но ничего похожего ненашел, может плохо искал. Сейчас я это выполняю следующим образом: Если не затруднит, уже устал так делать. |
МатросНаЗебре Пользователь Сообщений: 5516 |
#2 07.11.2022 11:36:56
|
||
werdan Пользователь Сообщений: 28 |
Отлично. Работает. Огромное Спасибо. |
МатросНаЗебре Пользователь Сообщений: 5516 |
#4 07.11.2022 12:40:43
|
||||
werdan Пользователь Сообщений: 28 |
. Изменено: werdan — 15.04.2023 07:04:42 |
werdan Пользователь Сообщений: 28 |
Добрый день. Все работает. ОГРОМНОЕ СПАСИБО!!! Но столкнулся с такой проблеммой, после ввода данных если случайно нажать на кнопку с макросом 2 раза то все данные только что введеные стираются и на стронице ввода и на листах. Как можно избежать этого? Изменено: werdan — 15.04.2023 07:05:45 |
New Пользователь Сообщений: 4581 |
#7 26.11.2022 09:02:07 не нажимайте случайно на кнопку с макросом 2 раза )) а так попробуйте этот код
Изменено: New — 26.11.2022 09:03:12 |
||
werdan Пользователь Сообщений: 28 |
Мне понравилось такое решение, значительно уменьшает вероятность двойного нажатия. Только если опять 2 раза нажать ДА все сотрется. А можно при очишении формы, очистить и месяц и если месяц не введен то не копировать и не очищать форму, а выдавать ошибку введите месяц. |
New Пользователь Сообщений: 4581 |
#9 26.11.2022 10:45:19
|
||
werdan Пользователь Сообщений: 28 |
Отлично!!! Огромное спасибо!!! |
werdan Пользователь Сообщений: 28 |
Добрый день. При переносе данных, чтобы данные по месяцам записывались, не в каждый столбик, через 1 столбик (чтобы в этом столбике вести расчет), и если при переносе данных в ячейке нет, то записывать данные из предыдущего месяца. И если это возможно при нажатии кнопки на листе данные изменять месяц на следующий. |
werdan Пользователь Сообщений: 28 |
ПРИМЕР Прикрепленные файлы
|
werdan Пользователь Сообщений: 28 |
Добрый день. Подскажите решения этого вопроса нет? или где можно почитать, поизучать процедуры и функции для написания макросов |
Msi2102 Пользователь Сообщений: 3137 |
werdan, скажите, а Вы когда на работу устраивались, наверное тест на знание Excel проходили😁 |
werdan Пользователь Сообщений: 28 |
Это совсем не моя специализация и направление, это мне внагрузку, так как когда то помог с простыми формулами. Я так понял, вставлять данные через столбик, это большая проблемма. Если не затруднит где можно почитать про макросы? |
Jack Famous Пользователь Сообщений: 10848 OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome |
#16 20.03.2023 11:21:28
получается, мы не вам помогаем, а начальству — вас неблагодарно использовать. Нет никакого желания… Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄ |
||
МатросНаЗебре Пользователь Сообщений: 5516 |
#17 20.03.2023 12:43:32
Не будем менять работающую схему ) |
||||||
МатросНаЗебре Пользователь Сообщений: 5516 |
#18 20.03.2023 12:53:42
Профессиональное программирование на VBA. Дж. Уокенбах Изменено: МатросНаЗебре — 20.03.2023 12:55:59 |
||||||
werdan Пользователь Сообщений: 28 |
#19 20.03.2023 13:28:03
Помогаем всем по мере возможности, вот и мне помогли, добро оно возвращается!!! Делай добро и бросай его в воду!!! А начальство — молодая девушка хоть и своенравная и вредная, куда она без нас вот и просит помочь хоть и не всегда благодарна. |
||||
werdan Пользователь Сообщений: 28 |
#20 20.03.2023 13:30:23
Ура, можно решить и этот вопрос. ОГРОМНОЕ СПАСИБО!!! |
||||||||
werdan Пользователь Сообщений: 28 |
#21 20.03.2023 13:33:25
Смена месяца заслуживает отдельного ОГРОМНОГО СПАСИБО!!! |
||||||||
werdan Пользователь Сообщений: 28 |
, Изменено: werdan — 15.04.2023 06:59:38 |
werdan Пользователь Сообщений: 28 |
При переносе данных если ячейка пуста то вставить данные из предыдущего месяца. |
MikeVol Пользователь Сообщений: 229 Ученик |
werdan, Здравствуйте. А правила форума почитать про оформление кода, видать тоже никак? |
werdan Пользователь Сообщений: 28 |
#25 01.04.2023 17:12:56
[CODE][/CODE] Изменено: werdan — 01.04.2023 17:13:56 |
||
werdan Пользователь Сообщений: 28 |
#26 01.04.2023 17:15:13
Исправился, спасибо. я еще подумал почему у меня код не как у всех вставился |
||
werdan Пользователь Сообщений: 28 |
Добрый день. Как удалить созданую мной тему, полностью? |
ваша личная тема уже не совсем и личная, Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете! |
|
Msi2102 Пользователь Сообщений: 3137 |
#29 07.04.2023 09:12:21
наверное она просто неудовлетворённая, может не там ищите решение проблемы 😉 |
||
werdan Пользователь Сообщений: 28 |
#30 13.04.2023 07:32:40
Добрый день. |
||||
Эта статья может вам помочь для автоматического копирования и вставки значения ячейки в текущем листе или с одного листа на другой без использования сочетаний клавиш.
Автоматическое копирование и вставка ячейки в текущий лист или с одного листа на другой с формулой
Автоматическое копирование и вставка ячейки в текущий лист с помощью VBA
Скопируйте и вставьте несколько диапазонов на текущий лист или с одного листа на другой с помощью Kutools for Excel
Автоматическое копирование и вставка ячейки в текущий лист или с одного листа на другой с формулой
Вы можете использовать формулу для автоматического копирования и вставки ячейки. Пожалуйста, сделайте следующее.
1. Чтобы скопировать и вставить ячейку в текущий лист, например, скопировать ячейку с A1 в D5, вы можете просто выбрать ячейку назначения D5, а затем ввести = A1 и нажмите клавишу Enter, чтобы получить значение A1.
2. Для копирования и вставки ячейки с одного листа на другой, например для копирования ячейки A1 листа Sheet1 в ячейку D5 листа Sheet2, выберите ячейку D5 на листе Sheet2, затем введите = Лист1! A1 и нажмите клавишу Enter, чтобы получить значение.
Tips: Целевая ячейка связана с скопированной ячейкой и будет изменена по мере изменения исходной ячейки.
Автоматическое копирование и вставка ячейки в текущий лист с помощью VBA
Следующий код VBA помогает скопировать ячейку или диапазон ячеек и вставить их в указанные ячейки на текущем листе.
1. Нажмите другой + F11 клавиши одновременно, чтобы открыть Microsoft Visual Basic для приложений окно.
2. в Microsoft Visual Basic для приложений окна, нажмите Вставить > Модули. Затем скопируйте и вставьте приведенный ниже код VBA в окно модуля.
Код VBA: автоматическое копирование и вставка ячейки в текущий лист
Sub RangeTest()
On Error Resume Next
Dim xRg As Range
Set xRg = Application.Selection
Range("A1 ").Copy Range("D5")
xRg.Select
End Sub
Внимание: В коде A1 — это ячейка, которую вы скопируете, а D5 — это ячейка назначения для размещения значения ячейки A1. Для автоматического копирования и вставки диапазона ячеек замените ячейку диапазоном, например замените A1 на A1: A10 и замените D5 на D1: D10.
3. нажмите F5 нажмите клавишу для запуска кода, то определенная ячейка (диапазон) будет автоматически скопирована и вставлена в указанную ячейку (диапазон), а также форматирование ячейки.
Скопируйте и вставьте несколько диапазонов на текущий лист или с одного листа на другой с помощью Kutools for Excel
Если у вас есть несколько диапазонов, которые нужно скопировать одновременно, вы можете попробовать Копировать диапазоны полезности Kutools for Excel.
1. Выберите несколько диапазонов, которые нужно скопировать, удерживая Ctrl ключ. Затем нажмите Кутулс > Копировать диапазоны. Смотрите скриншот:
2. в Копировать несколько диапазонов диалоговое окно, вы можете увидеть, что выбранные диапазоны перечислены в Диапазоны для копирования коробка. Затем укажите параметр в Специальная вставка раздел, проверьте Включая высоту строки или Включая ширину столбца поле, как вам нужно, и, наконец, нажмите OK кнопка. Смотрите скриншот:
3. В секунду Копировать несколько диапазонов диалоговом окне укажите пустую ячейку для вставки выбранных диапазонов, а затем щелкните значок OK кнопку.
Внимание: если вы хотите вставить выбранные диапазоны на другой лист, выберите ячейку на этом листе и нажмите кнопку «ОК» во втором диалоговом окне «Копировать несколько диапазонов».
Теперь выбранные диапазоны копируются и вставляются в указанное место.
Если вы хотите получить бесплатную пробную версию (30-день) этой утилиты, пожалуйста, нажмите, чтобы загрузить это, а затем перейдите к применению операции в соответствии с указанными выше шагами.
Скопируйте и вставьте несколько диапазонов в текущий лист или с одного листа на другой
Статьи по теме:
- Как автоматически заполнять другие ячейки при выборе значений в раскрывающемся списке Excel?
- Как выполнить автозаполнение при вводе в раскрывающемся списке Excel?
- Как автоматически заполнять дату в ячейке, когда соседняя ячейка обновляется в Excel?
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
автоматическое копирование данных по условию
Автор gitzzz, 25.07.2009, 14:22
« назад — далее »
Добрый день.
Столкнулся с проблемой:
Есть 2 листа. В первом основные данные. Есть призначное поле (да/нет).
Нужно, чтобы при вводе данных в таблицу (когда это поле = «да») автоматически копировалась на второй лист нужная инфа из этой строки данных.
Такие возможности ехсел не знаю, но знаю что они есть)
Подскажите, пожалуйста, как это можно организовать (оперативно)?
Пробовал с помощью ЕСЛИ() но там постоянно выдается ответ ЛОЖЬ. Может макрос какой-нибудь есть?
Заранее, спасибо.
Есть несколько путей:
1. Написать макрос, который будет копировать на свободное место на втором листе значение, введенное в ячейку на первом листе, если рядом ввели признак ДА. Сам я макрос написать не возьмусь, но знаю, что это не обчень сложно. Попробуйте сами использовать макрорекодер для записи собственных действий, а потом поправьте макрос.
2. Использовать сводную таблицу. Опять таки, сам никогда их не использовал, но другим людям нравится.
3. Записать во второй таблице формулы, отображающие значения всех строк (ячеек), содержащий признак ДА.
Проще всего это сделать с помощью дополнительного столбца в первой таблице:
Пусть на листе 1 значения записываются в столбце A, признаки храняться в столбце B.
Тогда в ячейке C1 запишем формулу (и протянем ее по всему столбцу C): =ЕСЛИ(B1=»ДА»;СТРОКА();»»)
После этого переходим на лист 2 и в ячейке A1 записываем формулу (и также протягиваем ее вниз на столько сколько нужно):
=ЕСЛИ(СТРОКА()>СЧЁТ(Лист1!C:C);»»;ИНДЕКС(Лист1!A:A;НАИМЕНЬШИЙ(Лист1!C:C;СТРОКА());1))
Если нужно перенести значения из нескольких столбцов первого листа, то нужно записать несколько формул, поправив агрументы функции ИНДЕКС().
P.S. Важно, чтобы в столбце C первого листа не было лишних цифровых значений.
Если у Вас на листах должна быть шапка, то поэкспериментируйте с добавлений констант вида: СТРОКА()-Const
Нашел интересную статью, но опять возникли трудности с реализацией:
http://stockportal.ru/extrading/archives/225
Помогите разобраться в части кода, начиная с Call QuoteRead(intInstCount)
Кстати та книгде и не наше что это за функция…
Код можно переделать под мою задачу, или это вобще чтото другое?…
Public WithEvents App As Application
Private Sub App_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim pRow As Integer, pCol As Integer, intRow As Integer, I As Integer, intInstCount As Integer
Dim pValue As Variant
Dim wInstSheet As Worksheet
Dim wNVSheet As Worksheet
Set wInstSheet = Application.Workbooks("NettoVolume.xlsm").Sheets("Instruments")
Set wNVSheet = Application.Workbooks("NettoVolume.xlsm").Sheets("NV")
intInstCount = wInstSheet.Cells(2, 5)
If Sh.Name = "Котировки" And Target.Column > 1 And Target.Row > 1 And Target.Row < 10 Then
Debug.Print "Вошел в AppEvents"
Call QuoteRead(intInstCount)
For I = 1 To intInstCount
If Instruments(I).ChangeMode = 2 Then
intRow = wInstSheet.Cells(3, 5) + 1
Call Instruments(I).Output(wNVSheet, intRow, 2)
wInstSheet.Cells(3, 5) = intRow
End If
Next I
End If
End Sub
Сводную таблу сделал, но ее обновлять надо, да и пустые значения фильтром убираются…Не автоматизированно всё… Хочется, чтобы все обрабатывалось динамически.
Может кто-н знает как обработать событие при изменении значений в ячейке? Подскажите, пожалуйста. Код так и не смог разобрать…..
Если в ячейке «А1» написать слово ИСТИНА, а нижеследующий код скопировать в модуль листа №1, то, при изменении любой одной ячейки второго столбца, третьи столбцы двух листов этой строки «синхронизируются».
Private Sub Worksheet_Change(ByVal Target As Range)
With Target
If .Count > 1 Then Exit Sub
If .Column = 2 And [A1] Then Sheets(2).Cells(.Row, 3) = .Offset(0, 1)
End With
End Sub
Знания недостаточно, необходимо применение. Желания недостаточно, необходимо действие. (с) Брюс Ли
- Профессиональные приемы работы в Microsoft Excel
-
►
Обмен опытом -
►
Microsoft Excel -
►
автоматическое копирование данных по условию
Dmitry1992_92, Здравствуйте!
Я тоже начинающий, но позволю попробую ответить с помощью формулы.
Прикладываю файл с примером.
На листе 1 в столбец А вводите значения, а на листе 2 в столбце B будут заполнятся значения лишь тогда, когда будут заполнены ячейки.
А если ячейки пустые – то и на листе 2 в столбце В ячейки тоже будут пустые.
Вот формула:
Код
=ЕСЛИ(Лист1!A1<>»»;Лист1!A1;»»)
Это значит, если на Листе1 ячейка A1 не пустая то результат будет тот же что и в ячейке A1 на листе 1.
Мне кажется правильнее было бы Вам вопрос сформулировать не Как сделать автоматическое копирование ячейки?
А «Как формулой сделать автоматическое копирование значение ячейки?»
Что бы скопировать формулы – надо «протянуть» их вниз.
Dmitry1992_92 так Вы хотели?
P. S. Dmitry1992_92 Дополняю сообщение. После написанного.
Пожалуйста. Рад был помочь.
А если Вам нужно что бы было тоже значение что в ячейке на том же листе (например на Лист1) – то формула будет следующей:
А вот формула Если не пустая ячейка A1 то результат 1.
Или другой вариант формулы:
Код
=ЕСЛИ(ЕПУСТО(A1);»»;»1″)
А вот если не пустая ячейка А1 то результат слово «яблоко»
Код
=ЕСЛИ(ЕПУСТО(A1);»»;»яблоко»)
This macro allows you to quickly and easily copy all new data from one worksheet to another; it also allows you to delete all data from the ‘import’ worksheet after it has been copied over.
This will save you a lot of time when consolidating data in Excel.
Below, I’ll give you the code and an explanation of how to modify it for your use.
Sections:
The Macro
Use the Macro
Notes
The Macro
Sub Copy_New_Data()
'''''''' TeachExcel.com ''''''''
'Copy all new rows from one worksheet to another.
Dim importSheet, destinationSheet As Worksheet
Dim importLastRow, importColumnCheck, destinationColumnCheck, _
importStartRow, destinationStartRow, curRow, destinationLastRow As Integer
Dim dataToCheck As Variant
Dim rng, rDel As Range
' ------------------------------------------------------------------- '
' ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| '
' Change this section to work for your workbook.
' ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| '
' ------------------------------------------------------------------- '
'Set the worksheets
Set importSheet = Sheets("Import") 'worksheet to copy data from
Set destinationSheet = Sheets("backup") 'worksheet to paste new data
'Import data column to check
importColumnCheck = 1
'Destination data column to check
destinationColumnCheck = 1
'Start row on import sheet
importStartRow = 2
'Start row on destination sheet
destinationStartRow = 2
' ------------------------------------------------------------------- '
' ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| '
' ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| '
' ------------------------------------------------------------------- '
'Get last row from import worksheet
importLastRow = importSheet.Cells(Rows.Count, importColumnCheck).End(xlUp).Row
'Loop through range
For curRow = importStartRow To importLastRow
'Get data to check
dataToCheck = importSheet.Cells(curRow, importColumnCheck).Value
'Get last row from destination sheet
destinationLastRow = destinationSheet.Cells(Rows.Count, importColumnCheck).End(xlUp).Row
'Check for duplicate
With destinationSheet.Range(destinationSheet.Cells(destinationStartRow, destinationColumnCheck), destinationSheet.Cells(destinationLastRow, destinationColumnCheck))
Set rng = .Find(What:=dataToCheck, _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False)
If Not rng Is Nothing Then
'Record already exists
'mark rows for deletion
If Not rDel Is Nothing Then
Set rDel = Union(Range("A" & curRow), rDel)
Else
Set rDel = Range("A" & curRow)
End If
Else
'New record, so copy it over
importSheet.Range("A" & curRow).EntireRow.Copy destinationSheet.Range("A" & destinationLastRow + 1)
'mark rows for deletion
If Not rDel Is Nothing Then
Set rDel = Union(Range("A" & curRow), rDel)
Else
Set rDel = Range("A" & curRow)
End If
End If
End With
Next curRow
'Delete rows that need to be deleted
'Un-comment the next line of code if you want to delete copied rows.
'rDel.EntireRow.Delete
End Sub
Where to install macro: Module
Use the Macro
Choose Worksheet to Copy from and Paste To
Change this section of the code to the correct names of the sheets from which you will copy your data and to which you will paste your data.
'Set the worksheets
Set importSheet = Sheets("Import") 'worksheet to copy data from
Set destinationSheet = Sheets("backup") 'worksheet to paste new data
Import is the name of the sheet from which you will copy data.
backup is the name of the sheet to which you will paste the data.
Change these as needed.
Change Start Row for Copying/Pasting
This is the first row from which you will copy data. Do not include the header row.
'Start row on import sheet
importStartRow = 2
'Start row on destination sheet
destinationStartRow = 2
Right now, the import and destination rows start on row 2.
Change Comparison Column — Column that is Used to Check for Duplicate Rows
You need to select one column in which to check for duplicate rows. For instance, you could check an ID or OrderNumber, basically anything that must always be unique for each record or row of data.
'Import data column to check
importColumnCheck = 1
'Destination data column to check
destinationColumnCheck = 1
This checks in column A for duplicate values.
1 means column A; 2 means column B; 3 means column C; and so on.
Delete All Records after Being Copied to the New Sheet
If you want all records that have already been copied over or already exist on the destination sheet to be deleted from the Import worksheet, uncomment the following line:
'rDel.EntireRow.Delete
This is at the very end of the macro.
To uncomment, remove the single quotation mark from the start of this line of code.
Notes
This is a powerful little macro and it is pretty easy to customize for your needs. I recommend using it on sample data first though to make sure you get the desired results.
Make sure to download the sample file attached to this tutorial to get the macro and some sample data with which to test the macro.
Excel VBA Course — From Beginner to Expert
200+ Video Lessons
50+ Hours of Instruction
200+ Excel Guides
Become a master of VBA and Macros in Excel and learn how to automate all of your tasks in Excel with this online course. (No VBA experience required.)
View Course
Similar Content on TeachExcel
Automatically Updating Dependent Drop Down List Menus in Excel
Tutorial:
Step-by-step instruction on how to make automatically updating dependent data validation …
Pass Values from One Macro to Another Macro
Tutorial:
How to pass variables and values to macros. This allows you to get a result from one macr…
Import a Worksheet from One Workbook to Another in Excel
Tutorial: In Excel, you can quickly copy an entire worksheet from one workbook to another workbook.�…
Update, Change, and Manage the Data Used in a Chart in Excel
Tutorial: In this tutorial I am going to show you how to update, change and manage the data used by …
How to import Text Files (CSV) into Excel
Tutorial: Text files in CSV format are one of the easiest ways to store and transfer data as it is o…
Copy Data or Formatting to Multiple Worksheets in Excel
Tutorial:
Quickly copy all or parts of a single worksheet — data, formatting, or both — to multiple…
How to Install the Macro
- Select and copy the text from within the grey box above.
- Open the Microsoft Excel file in which you would like the Macro to function.
- Press «Alt + F11» — This will open the Visual Basic Editor — Works for all Excel Versions.
Or For other ways to get there, Click Here. - On the new window that opens up, go to the left side where the vertical pane is located. Locate your Excel file; it will be called VBAProject (YOUR FILE’S NAME HERE) and click this.
- If the Macro goes in a Module, Click Here, otherwise continue to Step 8.
- If the Macro goes in the Workbook or ThisWorkbook, Click Here, otherwise continue to Step 8.
- If the Macro goes in the Worksheet Code, Click Here, otherwise continue to Step 8.
- Close the Microsoft Visual Basic Editor window and save the Excel file. When you close the Visual Basic Editor window, the regular Excel window will not close.
- You are now ready to run the macro.
0 / 0 / 0 Регистрация: 27.10.2014 Сообщений: 7 |
|
1 |
|
Автоматическое копирование новой строки на другой лист26.01.2016, 13:52. Показов 3044. Ответов 2
Башку сломал, ищу решение с помощью коллективного разума. Каждый раз при вводе данных через форму на листе создается новая строка с произвольными данными. Как сделать так, чтобы при создании новой строки все данные из нее автоматически копировались на другой лист (в другую книгу)? На новом листе (в новой книге) это должна быть единственная запись.
0 |
15136 / 6410 / 1730 Регистрация: 24.09.2011 Сообщений: 9,999 |
|
26.01.2016, 22:23 |
2 |
Каждый раз при вводе данных через форму на листе создается новая строка Форму Вы создали, или имеется в виду встроенная форма (Панель быстрого доступа — Все команды — Форма…)?
0 |
0 / 0 / 0 Регистрация: 27.10.2014 Сообщений: 7 |
|
27.01.2016, 09:27 [ТС] |
3 |
Нет, форма внешняя, сторонняя. К сожалению — защищенная. Про копирование из нее думал в первую очередь, но ломануть не смог.
0 |
Таблица в Excel – это сложный массив с множеством параметров. Он может состоять из значений, текстовых ячеек, формул и быть отформатирован разными способами (ячейки могут иметь определенное выравнивание, цвет, направление текста, специальные пометки и т.п.).
При копировании таблицы иногда требуется перенести не все ее элементы, а только некоторые. Рассмотрим, как это можно сделать.
Специальная вставка
Очень удобно выполнять перенос данных таблицы с помощью специальной вставки. Она позволяет выбрать только те параметры, которые нам необходимы при копировании. Рассмотрим пример.
Имеем таблицу с показателями по наличию макарон определенных марок на складе магазина. Наглядно видно, сколько килограмм было в начале месяца, сколько докуплено и продано, а также остаток на конец месяца. Два важных столбца выделены разными цветами. Остаток на конец месяца рассчитан по элементарной формуле.
Попробуем воспользоваться командой СПЕЦИАЛЬНАЯ ВСТАВКА и скопировать все данные.
Сначала мы выделяем имеющуюся таблицу, правой кнопкой вызываем меню и жмем КОПИРОВАТЬ.
В свободной ячейке снова вызываем меню правой кнопкой и нажимаем СПЕЦИАЛЬНАЯ ВСТАВКА.
Если мы оставим все как есть по умолчанию и просто нажмем ОК, то таблица вставится полностью, со всеми ее параметрами.
Попробуем поэкспериментировать. В СПЕЦИАЛЬНОЙ ВСТАВКЕ выберем другой пункт, например, ФОРМУЛЫ. Получили уже неформатированную таблицу, но с работающими формулами.
Теперь вставим не формулы, а только ЗНАЧЕНИЯ результатов их вычислений.
Чтобы новая таблица со значениями получила внешний вид аналогичный образцу выделим ее и вставим ФОРМАТЫ с помощью специальной вставки.
Теперь попробуем выбрать пункт БЕЗ РАМКИ. Получили полную таблицу, но только без выделенных границ.
Полезный совет! Чтобы перенести формат вместе с размерами столбцов нужно перед копированием выделить не диапазон исходной таблицы, а столбцы целиком (в данном случаи это диапазон A:F).
Аналогично можно поэкспериментировать с каждым пунктом СПЕЦИАЛЬНОЙ ВСТАВКИ, чтобы наглядно увидеть, как она работает.
Перенос данных на другой лист
Перенос данных на другие листы книги Excel позволяет связывать несколько таблиц. Это удобно тем, что при замене какого-то значения на одном листе, меняются значения на всех остальных. При создании годовых отчетов это незаменимая вещь.
Рассмотрим, как это работает. Для начала переименуем листы Excel в месяцы. Затем с помощью уже знакомой нам СПЕЦИАЛЬНОЙ ВСТАВКИ перенесем таблицу на февраль и удалим значения из трех столбов:
- На начало месяца.
- Приход.
- Расход.
Столбец «На конец месяца» у нас задан формулой, поэтому при удалении значений из предыдущих столбцов, он автоматически обнуляется.
Перенесем данные по остатку макарон каждой марки с января на февраль. Это делается буквально в пару нажатий.
- На листе ФЕВРАЛЬ ставим курсор в ячейку, показывающую количество макарон марки А на начало месяца. Можно посмотреть на рисунок выше – это будет ячейка D3.
- Ставим в этой ячейке знак РАВНО.
- Переходим на лист ЯНВАРЬ и кликаем на ячейку, показывающую количество макарон марки А на конец месяца (в нашем случае это ячейка F2 на листе «январь»).
Получаем следующее: в ячейке C2 образовалась формула, которая отсылает нас на ячейку F2 листа ЯНВАРЬ. Протянем формулу вниз, чтобы знать количество макарон каждой марки на начало февраля.
Аналогично можно перенести данные на все месяцы и получить наглядный годовой отчет.
Перенос данных в другой файл
Аналогично можно переносить данные из одного файла в другой. Данная книга в нашем примере так и называется EXCEL. Создадим еще одну и назовем ее ПРИМЕР.
Примечание. Создавать новые файлы Excel можно даже в разных папках. Программа будет автоматически искать указанную книгу, независимо от того, в какой папке и на каком диске компьютера она находится.
Скопируем в книгу ПРИМЕР таблицу с помощью все той же СПЕЦИАЛЬНОЙ ВСТАВКИ. И опять удалим значения из трех столбцов. Проведем те же действия, что и в предыдущем параграфе, но переходить уже будем не на другой лист, а на другую книгу.
Получили новую формулу, которая показывает, что ячейка ссылается на книгу EXCEL. Причем видим, что ячейка F2 выглядит как $F$2, т.е. она зафиксирована. И если мы хотим протянуть формулу на остальные марки макарон, сначала нужно удалить значки доллара, чтобы снять фиксацию.
Теперь вы знаете, как грамотно переносить данные из таблиц в рамках одного листа, с одного листа на другой, а также с одного файла в другой.
Автоматический перенос данных из одной таблицы в другую в программе Excel.
Приведу три способа Автоматического переноса данных с одного листа программы «Эксель» в другой.
Первый, самый простой и примитивный способ связи двух таблиц на разных листах документа -вставка данных при помощи опции специальной вставки.
Рассмотрим, как соединить две таблицы по шагам.
Первый шаг.
Необходимо выделить ту таблицу, из которой будут транслироваться данные во вторую таблицу.
Второй шаг.
Копировать информацию сочетанием клавиш ctrl+C или вызвав контекстное меню правой кнопкой мыши и кликнув по пункту меню «Копировать»
Третий шаг.
Перейти на лист документа «Excel», в который Вы планируете транслировать информацию из первой таблицы.
Четвертый шаг.
Поставить курсор в первую (левую верхнюю) ячейку таблицы и выбрать в меню «Вставка» пункт «Вставить связь». В некоторых версиях программы «Excel» этот пункт находится в меню «Специальная вставка»
После вставки связи следует отформатировать вид ячеек – привести их к надлежащему виду.
Результат вставки связи
Второй способ переноса данных из одной таблицы в другую — это использование сводных таблиц в программе «Excel».
При использовании данного метода роль второй таблицы («реципиента») играет сама сводная таблица.
Как обновить сводную таблицу
При клике правой кнопкой мыши по сводной таблице и нажатии на пункт «Обновить» сводная таблица автоматически перенесет все данные из связанного массива информации («таблицы донора»).
О том, как в «Эксель» создавать сводные таблицы подробно написано в статье:
Как делать сводные таблицы в программе «Excel» и для чего они нужны.
Третий способ самый эффективный и наиболее автоматизированный — это использование меню надстройки «Power Query».
Правда нужно отметить, что этот способ подходит только пользователям Excel 2016 и пользователям Excel 2013и выше с установленной надстройкой «Power Query».
Смысл способа в следующем:
Необходимо открыть вкладку «Power Query». В разделе «Данные Excel» нажимаем кнопку (пиктограмму) «Из таблицы».
Из таблицы -Power Query
Далее нужно выбрать диапазон ячеек, из которых нужно «притянуть» информацию и нажимаем «Ок».
Источник данных для запроса Power Query
После выбора области данных появится окно настройки вида новой таблицы. В этом окне Вы можете настроить последовательность вывода столбцов и удалить ненужные столбцы.
После настройки вида таблицы нажмите кнопку «Закрыть и загрузить»
Обновление полученной таблицы происходит кликом правой кнопки мыши по названию нужного запроса в правой части листа (список «Запросы книги»). После клика правой кнопкой мыши в выпадающем контекстном меню следует нажать на пункт «Обновить»
Обновление запроса в PowerQuery