Як копіювати дані з одного аркуша Excel в інший за допомогою формули

Багато користувачів Excel намагаються вирішити, як перенести дані з аркуша запису на архівний аркуш. Хоча Excel - це електронна таблиця, призначена для виконання складних обчислень, таких як таблиці іпотечних амортизацій або відстеження продажів, більшість людей ніколи не вивчають її більш глибокі операції.

Цей розділ поширених запитань допоможе вам визначити та перемістити дані.

Копіювання даних з одного листа Excel в інший з формулою

Почніть з відкриття вкладки розробника в Excel.

Далі, вам потрібно побудувати UserForm Sheet Controller. Ця UserForm дозволяє вибрати, звідки переміщуються дані, куди переносяться дані, який стовпець перевіряти, щоб кваліфікаційні дані визначили, чи переміщуються дані, і яке значення має бути стовпець для переміщення.

Під час створення користувацької форми віддзеркаліть наступний приклад, обережно назвавши кожне керування правильно:

Тепер, коли ви створили Userform, вам необхідно додати код до кожного елемента керування. У UserForm двічі клацніть елемент керування з ім'ям CommandButton2 . Діаграма Userform більше не повинна бути видимою, і тепер ви повинні бути представлені разом з кодом explorer, з кодовим блоком за замовчуванням. Цей блок коду починається з Private Sub ComandButton2_Click () . Розмістіть курсор під першим рядком, але перед лінією, яка говорить Закінчення Sub . Тепер введіть наступний код, щоб налаштувати загальнодоступні змінні, які будуть застосовані до решти коду:

Тепер поверніться до Провідника UserForm і двічі клацніть елемент управління, позначений CommandButton3 . У черговий раз UserForm стає осторонь для explorer коду. Розмістіть курсор на новоствореному блоці коду та введіть наступний код:

У розділі Explorer провідника проекту клацніть правою кнопкою миші об'єкти Microsoft Excel . Виберіть Вставити > Модуль .

Двічі клацніть модуль Module1 і введіть такі загальнодоступні змінні:

А тепер вставте ще три аркуші у свою книгу. Тепер ви повинні мати чотири аркуші, названі Sheet1, Sheet2, Sheet3 і Sheet4 .

На Sheet1 помістіть елементи приблизно 10-15 рядків, використовуючи наведене нижче зображення як приклад тестових даних:

Далі на вкладці " Розробник" (у верхній частині робочої книги) клацніть елементи керування > Вставити > значок кнопки :

Тепер розмістіть кнопку в будь-якому місці аркуша. Коли він запитує про макроси, виберіть Новий .

Ви помітите, що він розмістив новий макрос у модулі2 проекту. Виділіть блок коду в модулі2, виріжте його з модуля2 . Тепер двічі клацніть Модуль1 . Коли відкриється Провідник коду, клацніть правою кнопкою миші та виберіть Вставити . Тепер ви повинні мати порожній блок коду, який читає:

Розмістіть курсор у блоці коду та додайте наступний код:

Ви помітите, що існує функція, яка називається Buildform . Після цього інвентаризація буде встановлена ​​для відповідної кількості аркушів після інвентаризації. Щоб застосувати це, помістіть наступний код у Провідник коду, нижче підпрограми Button1_Click () :

У функції buildform є ще одна функція, яка називається Counttabs . Цей код слід розмістити над кодом " Формування", але нижче підпрограми Button1_click :

Якщо встановлено як змінні TabFrom, так і TabTo, вам знадобиться запустити функцію createNew () . Помістіть нижній код у Провідник коду, вище підпрограми Button1_click :

Якщо ви вирішили створити новий аркуш, змініть змінну TabTo на нове ім'я аркуша. Потім потрібно запустити процедуру LoopForMove (TabFrom, TabTo) . У Провіднику коду введіть наступний код:

Щоб знайти останній рядок вашого аркуша, введіть нижченаведений код у Провідник коду, над LoopForMove (FromWhatSheet, ToWhatSheet) :

Тепер ви зможете перемістити фактичний код за допомогою функції Moveit (FromWhatSheet, CellLoc, ToWhatSheet, CutVal) . Між функціями LooForMove () і createNew () помістіть наступний код:

| фантазія]

Продовжуйте переходити по кожному рядку на аркуші From, шукаючи кваліфіковані записи, використовуючи функцію For Loop .

Щоб підсумувати дії форми користувача, див.

Ось така ж ілюстрація, на цей раз, з урахуванням більшої кількості елементів:

Нарешті, наведений вище код повністю:

 Опція Явна

Загальнодоступна TabFrom

Публічна вкладка

Громадський Qualif As String

Публічний WhatCol

Громадський WhatLogic

Громадський CutVal

Публічний FormXcel

Функція FindLastRow (OnWhatsheet)

FindLastRow = Cells (ThisWorkbook.Worksheets) .Rows.Count, 1) .End (xlUp) .Row

Функція End

Функція LoopForMove (FromWhatSheet, ToWhatSheet)

Dim LastRow, Cnt

Замінити розмір клітинки як рядок

Dim CellLoc

Дим nret

Якщо WhatCol = "" Тоді

WhatCol = "A"

End If

Якщо Qualif = "" Тоді

Qualif = "X"

End If

ThisWorkbook.Worksheets (FromWhatSheet). Виберіть

LastRow = FindLastRow (FromWhatSheet)

Для Cnt = LastRow До 1 Крок -1

CellLoc = WhatCol & Cnt

CellValue = ThisWorkbook.Worksheets (FromWhatSheet) .Range (CellLoc).

Якщо CellValue = Qualif Потім

nret = Перемістити (відЧастного листа, CellLoc, ToWhatSheet, CutVal)

End If

Далі

Функція End

Функція Moveit (з листа, щообласті, до місця, CutVal)

Dim MoveSheetLastRow

З цією книгою.

.Виберіть

.Range (WhatRange) .EntireRow.Select

Завершити

Виділення

Якщо CutVal = True Тоді

Виділення

End If

MoveSheetLastRow = FindLastRow (ToWhere)

ThisWorkbook.Worksheets (ToWhere) .Виберіть

Целюли (MoveSheetLastRow + 1, 1) .EntireRow.Select

Встановіть

ThisWorkbook.Worksheets (FromSheet). Виберіть

Application.CutCopyMode = False

Функція End

Функція createNew ()

Dim NewSheet

Якщо TabTo = "Новий аркуш" Потім

ThisWorkbook.Sheets.Add After: = Листи (Sheets.Count)

NewSheet = ThisWorkbook.ActiveSheet.Name

TabTo = NewSheet

End If

Функція End

Sub Button1_Click ()

Дим nret

buildform

Якщо FormXcel = False Then

Якщо TabFrom "" І TabTo "" Тоді

створити новий

nret = LoopForMove (TabFrom, TabTo)

Ще

MsgBox ("Будь ласка, встановіть лист" Від "та" До "!)

End If

End If

End Sub

Функція Counttabs ()

Counttabs = ThisWorkbook.Worksheets.Count

Функція End

Функція buildform ()

Див

Controller.ComboBox2.AddItem "Новий аркуш"

Для TabCount = 1 для Counttabs

Controller.ComboBox1.AddItem ThisWorkbook.Worksheets (Таблиця).

Controller.ComboBox2.AddItem ThisWorkbook.Worksheets (Таблиця).

Далі

Controller.Show

Функція End

Дякуємо за ace3mark за цей відгук.

Зображення: © Microsoft.

Попередня Стаття Наступна Стаття

Кращі Поради