Note: The other languages of the website are Google-translated. Back to English

Як створити командну кнопку для копіювання та вставки даних у Excel?

Припустимо, вам потрібно часто копіювати діапазон комірок в інше місце після зміни даних, метод ручного копіювання та вставки буде непомітним і трудомістким. Як зробити так, щоб цей процес копіювання та вставлення запускався автоматично? Ця стаття покаже, як за допомогою командної кнопки копіювати та вставляти дані лише одним клацанням миші.

Створіть кнопку команди, щоб скопіювати та вставити дані за допомогою коду VBA


Створіть кнопку команди, щоб скопіювати та вставити дані за допомогою коду VBA

Будь ласка, виконайте наступні дії, щоб автоматично копіювати та вставляти дані, натискаючи кнопку команди.

1. Вставте командну кнопку, клацнувши Розробник > Insert > Кнопка керування (керування ActiveX). Дивіться знімок екрана:

2. Намалюйте на своєму аркуші командну кнопку та клацніть правою кнопкою миші. Виберіть Переглянути код з контекстного меню.

3. У спливаючому Microsoft Visual Basic для додатків вікно, будь ласка, замініть оригінальний код у вікні коду на код VBA нижче.

Код VBA: Скопіюйте та вставте дані в Excel за допомогою командної кнопки

Private Sub CommandButton1_Click()
    Application.ScreenUpdating = False
    Dim xSheet As Worksheet
    Set xSheet = ActiveSheet
        If xSheet.Name <> "Definitions" And xSheet.Name <> "fx" And xSheet.Name <> "Needs" Then
            xSheet.Range("A1:C17 ").Copy
            xSheet.Range("J1:L17").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
        End If

    Application.ScreenUpdating = True
End Sub

примітки: У коді CommandButton1 - це назва вставленої кнопки Command. A1: C17 - діапазон, який потрібно скопіювати, а J1: L17 - діапазон призначення, щоб вставити дані. Будь ласка, змініть їх, як вам потрібно.

4. прес інший + Q клавіші, щоб закрити Microsoft Visual Basic для додатків вікно. І вимкніть Режим дизайну на вкладці Розробник.

5. Тепер натисніть кнопку команди, всі дані в діапазоні A1: C17 будуть скопійовані та вставлені в діапазон J1: L17 без форматування комірки.


Статті по темі:


Найкращі інструменти для підвищення продуктивності офісу

Kutools для Excel вирішує більшість ваших проблем і збільшує продуктивність на 80%

  • Повторне використання: Швидко вставте складні формули, діаграми і все, що ви використовували раніше; Шифрувати комірки з паролем; Створити список розсилки та надсилати електронні листи ...
  • Супер формула бар (легко редагувати кілька рядків тексту та формули); Макет читання (легко читати та редагувати велику кількість комірок); Вставте у відфільтрований діапазон...
  • Об’єднати клітинки / рядки / стовпці без втрати даних; Вміст розділених комірок; Об'єднати повторювані рядки / стовпці... Запобігання дублюючим клітинам; Порівняйте діапазони...
  • Виберіть Повторюваний або Унікальний Рядки; Виберіть Пусті рядки (усі клітинки порожні); Супер знахідка та нечітка знахідка у багатьох робочих зошитах; Випадковий вибір ...
  • Точна копія Кілька клітинок без зміни посилання на формулу; Автоматичне створення посилань на кілька аркушів; Вставте кулі, Прапорці та інше ...
  • Витяг тексту, Додати текст, Видалити за позицією, Видаліть пробіл; Створення та друк проміжних підсумків підкачки; Перетворення вмісту комірок та коментарів...
  • Супер фільтр (зберегти та застосувати схеми фільтрів до інших аркушів); Розширене сортування за місяцем / тижнем / днем, частотою та іншим; Спеціальний фільтр жирним, курсивом ...
  • Поєднайте робочі зошити та робочі аркуші; Об’єднати таблиці на основі ключових стовпців; Розділіть дані на кілька аркушів; Пакетне перетворення xls, xlsx та PDF...
  • Понад 300 потужних функцій. Підтримує Office / Excel 2007-2021 і 365. Підтримує всі мови. Легке розгортання на вашому підприємстві чи в організації. 30-денна безкоштовна пробна версія повних функцій. 60-денна гарантія повернення грошей.
вкладка kte 201905

Вкладка Office забезпечує інтерфейс з вкладками для Office і значно спрощує вашу роботу

  • Увімкніть редагування та читання на вкладках у Word, Excel, PowerPoint, Publisher, Access, Visio та Project.
  • Відкривайте та створюйте кілька документів на нових вкладках того самого вікна, а не в нових вікнах.
  • Збільшує вашу продуктивність на 50% та зменшує сотні клацань миші для вас щодня!
дно офісної таблиці
Коментарі (60)
Оцінено 4.5 з 5 · рейтинги 1
Цей коментар був мінімізований модератором на сайті
Я використовував цю функцію у своїй робочій книжці. Я використовую активні кнопки x, щоб копіювати та вставляти дані в межах одного аркуша на кількох аркушах. Однак є аркуші без активних кнопок x або макросів, які отримують дані з відповідних полів на аркуші, які мені не потрібні. Допоможіть?
Цей коментар був мінімізований модератором на сайті
Чи можу я отримати код, який скопіюватиме діапазон I4:L26 з Sheet2 (називається TransferSheet) (кнопка буде на цьому аркуші) до Sheet1 (називається JobsToDo) у рядку C (1-й рядок, який є порожнім, оскільки дані будуть додаватися постійно, будь ласка
Цей коментар був мінімізований модератором на сайті
Як можна змінити код, щоб вставити результати на іншу сторінку в книзі? і як вставити рядок перед введенням нових даних, щоб він не перезаписував їх
Цей коментар був мінімізований модератором на сайті
Привіт Джейсон,
Якщо ви хочете вставити результати в інші аркуші в книзі, спробуйте наведений нижче код VBA.

Приватна підкоманда CommandButton1_Click()
Dim xSheet, xDWS як робочий лист
Dim xFNum як ціле число
Dim xSRg As Range

On Error Resume Next
Встановіть xSRg = Application.InputBox("Виберіть клітинку, щоб вставити діапазон:", "Kutools для Excel", xTxt, , , , , 8)
Якщо xSRg — нічого, вийдіть із Sub

Application.ScreenUpdating = Невірний
Діапазон("A1:C17 ").Копіювати
xSRg.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.ScreenUpdating = True

End Sub
Цей коментар був мінімізований модератором на сайті
як формула для копіювання файлів
потім вставте його на наступний аркуш. і вставте наступну, зробіть пробіл або продовжуйте йти вниз, не видаляючи попередню вставку.
Цей коментар був мінімізований модератором на сайті
Добрий день,
Наведений нижче код VBA може допомогти вам вирішити проблему. Будь ласка, спробуйте. Дякую.

Приватна підкоманда CommandButton1_Click()
Dim xSheet, xDWS як робочий лист
Dim xFNum як ціле число
Dim xSRg As Range

On Error Resume Next
Встановіть xSRg = Application.InputBox("Виберіть клітинку, щоб вставити діапазон:", "Kutools для Excel", xTxt, , , , , 8)
Якщо xSRg — нічого, вийдіть із Sub

Application.ScreenUpdating = Невірний
Діапазон("A1:C17 ").Копіювати
xSRg.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.ScreenUpdating = True

End Sub
Цей коментар був мінімізований модератором на сайті
Що робити, якщо я хочу створити чергу вставки?
Щоб пояснити далі. Я натискаю CommandButton1, а потім копіюю A1. Коли я використав вставити, копію з A1. Тоді я хочу скопіювати A2, не натискаючи іншу кнопку, щоб я міг відразу вставити A2 в інше місце. Потім, коли я використав вставити, копію з А2, а потім копію А3. Якщо це можливо? Чи може це також працювати у фоновому режимі під час використання звичайного аркуша Excel і спробувати виконати цю дію, коли я копіюю з Excel, а потім вставляю в зовсім іншу програму, як-от інтернет-браузер, іншу програму, слово, txt-файл тощо ?

Ця стаття була надзвичайно корисною, дуже дякую!
Цей коментар був мінімізований модератором на сайті
Привіт Магнус!
Вибачте, не можу вам з цим допомогти. Дякую за коментар.
Цей коментар був мінімізований модератором на сайті
Я хотів би розширити цей крок... Після вставки фактичних значень, а не формул... Мені потрібно скопіювати нову клітинку та вставити в іншу програму, яка не є Excel, якщо мені потрібно просто натиснути кнопку скопіювати формулу з конкретну клітинку та перемістіть фактичне значення в іншу, а потім скопіюйте це нове значення в буфер обміну Windows у минуле в іншій програмі. Сподіваюся, що це має сенс, і я вдячний за вашу допомогу, щоб знати, як додати новий код... Я знаю, що я хочу, щоб він зробив, але не знайомий з тим, як його кодувати...
Дякую
Цей коментар був мінімізований модератором на сайті
привіт,
Код оновлено в статті, будь ласка, спробуйте. Дякуємо за коментар.
Цей коментар був мінімізований модератором на сайті
Чи можна було б, щоб кнопка команди миттєво вставила вибраний діапазон на вказаний аркуш (у наступну порожню клітинку), замість того, щоб щоразу вводити, куди потрібно вставити дані?
Цей коментар був мінімізований модератором на сайті
Привіт Адам,
Наведений нижче код VBA може допомогти вам вирішити проблему.
Вам потрібно замінити "Sheet4" і "A1:C17" в коді на вказаний аркуш і діапазон.

Приватна підкоманда CommandButton1_Click()
Dim xSWName як рядок
Dim xSheet як робочий аркуш
Зменшити xPSheet як робочий аркуш
Dim xIntR як ціле число
xSWName = "Аркуш4"
On Error Resume Next
Application.ScreenUpdating = Невірний
Встановіть xSheet = ActiveSheet
Якщо xSheet.Name <> "Визначення" і xSheet.Name <> "fx" і xSheet.Name <> "Потреби", тоді
xSheet.Range("A1:C17 ").Копіювати
Встановити xPSheet = Worksheets.Item(xSWName)
xIntR = xPSheet.UsedRange.Rows.count
xPSheet.Cells(xIntR + 1, 1).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End If
Application.ScreenUpdating = True
End Sub
Цей коментар був мінімізований модератором на сайті
дуже добре, мені потрібно багато разів копіювати та вставляти чи можна зробити вибір, щоб вставити рядок даних у 3 рядки чи 5 рядків, що мені подобається?
Цей коментар був мінімізований модератором на сайті
Вибачте, не можу вам з цим допомогти
Цей коментар був мінімізований модератором на сайті
сер, як скопіювати діапазон комірки на поточному аркуші, а потім вставити в інші аркуші?
Цей коментар був мінімізований модератором на сайті
привіт,
Наведений нижче код VBA може допомогти вам вирішити проблему.
Вам потрібно замінити "Sheet4" і "A1:C17" в коді на вказаний аркуш і діапазон.

Приватна підкоманда CommandButton1_Click()
Dim xSWName як рядок
Dim xSheet як робочий аркуш
Зменшити xPSheet як робочий аркуш
Dim xIntR як ціле число
xSWName = "Аркуш4"
On Error Resume Next
Application.ScreenUpdating = Невірний
Встановіть xSheet = ActiveSheet
Якщо xSheet.Name <> "Визначення" і xSheet.Name <> "fx" і xSheet.Name <> "Потреби", тоді
xSheet.Range("A1:C17 ").Копіювати
Встановити xPSheet = Worksheets.Item(xSWName)
xIntR = xPSheet.UsedRange.Rows.count
xPSheet.Cells(xIntR + 1, 1).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End If
Application.ScreenUpdating = True
End Sub
Цей коментар був мінімізований модератором на сайті
Якщо я хочу скопіювати це не в поточну книгу, а в іншу книгу (яка все ще не відкрита) в Excel. Як мені відповідно змінити цей код VBA?
Цей коментар був мінімізований модератором на сайті
Привіт Робберт,
Вибачте, не можу вам з цим допомогти. Дякую за коментар.
Цей коментар був мінімізований модератором на сайті
У мене є qusrion. У мене є аркуш 1 зі стовпцем дати b3:b33, і я хочу, щоб його текст було скопійовано на аркуш 2 B33:b63, але мені потрібен той самий формат для тексту, тобто розмір кольору
Цей коментар був мінімізований модератором на сайті
Привіт авторе,

Стаття, про яку ви згадували вище, мені дуже допомогла. Я не звик до Excel коду та команд. Мені ще потрібно знати, а не цю статтю. Я добре скопіюю та вставлю на наступний аркуш. Але мені все одно потрібно знати, «як вставляти та додавати в новий рядок на наступному аркуші щоразу, коли я натискаю кнопку». Інакше мої дані на наступному аркуші будуть щоразу змінюватися. Буду дуже вдячний і з нетерпінням чекаю вашої відповіді.
Цей коментар був мінімізований модератором на сайті
Привіт Чжо Є Мін!
Вибачте за таку пізню відповідь. Виконайте вказівки та замініть код на наведений нижче. У коді Sheet4 є робочим аркушем призначення, на яке ви копіюєте дані, будь ласка, змініть його та скопійований діапазон A1:C17, як вам потрібно. Дякую за коментар.

Приватна підкоманда CommandButton1_Click()
Dim xSWName як рядок
Dim xSheet як робочий аркуш
Зменшити xPSheet як робочий аркуш
Dim xIntR як ціле число
xSWName = "Аркуш4"
On Error Resume Next
Application.ScreenUpdating = Невірний
Встановіть xSheet = ActiveSheet
Якщо xSheet.Name <> "Визначення" і xSheet.Name <> "fx" і xSheet.Name <> "Потреби", тоді
xSheet.Range("A1:C17 ").Копіювати
Встановити xPSheet = Worksheets.Item(xSWName)
xIntR = xPSheet.UsedRange.Rows.Count
xPSheet.Cells(xIntR + 1, 1).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End If
Application.ScreenUpdating = True
End Sub
Цей коментар був мінімізований модератором на сайті
Привіт, допоможіть будь ласка. Мені потрібно те саме, що й вище, але мені просто потрібно вставити активну клітинку в новий рядок (якщо можливо над попередніми записами) на іншому робочому аркуші. Дійсно ціную будь-яку допомогу в цьому. З найкращими побажаннями
Цей коментар був мінімізований модератором на сайті
привіт, допоможіть моїй справі, я хочу мати кнопку для створення макросу, де я маю Excel, і експортувати дані з <" "> у word, дякую
Цей коментар був мінімізований модератором на сайті
привіт,
Вибачте, я не зрозумів вашої думки. Було б добре, якби ви могли детальніше пояснити, що ви намагаєтеся зробити.
Цей коментар був мінімізований модератором на сайті
Я шукаю довідку щодо того, щоб користувач міг клацнути номер рядка, а потім натиснути кнопку команди, щоб зробити копію цього рядка та вставити його в рядок під ним.
Цей коментар був мінімізований модератором на сайті
Добрий день,
Вибачте, може допомогти вам у цьому. Дякую за коментар.
Цей коментар був мінімізований модератором на сайті
майстер bagaimana jika berbeda sheet dan копіювати дані yg diinginkan
contoh sheet1 hanya data kolom B & kolom D copy ke sheet2
дякую
Цей коментар був мінімізований модератором на сайті
будь ласка, надішліть VBAcode для копіювання вмісту однієї клітинки, натиснувши кнопку команди без використання текстового поля, щоб ви могли вставити в будь-яку програму, як-от блокнот, msword
Цей коментар був мінімізований модератором на сайті
Чи можна зробити кнопку, яка просто копіює одну виділену клітинку з одного аркуша на інший? Спасибі!
Цей коментар був мінімізований модератором на сайті
Привіт, lexi,
Наведений нижче код VBA може допомогти вам вирішити проблему. Будь ласка, змініть "Sheet3" на назву аркуша, як вам потрібно.
Виберіть клітинку та натисніть командну кнопку, щоб вона працювала.

Приватна підкоманда CommandButton1_Click()
Dim xSWName як рядок
Dim xSheet як робочий аркуш
Зменшити xPSheet як робочий аркуш
Dim xIntR як ціле число
xSWName = "Аркуш3"
On Error Resume Next
Application.ScreenUpdating = Невірний
Встановіть xSheet = ActiveSheet
Якщо xSheet.Name <> "Визначення" і xSheet.Name <> "fx" і xSheet.Name <> "Потреби", тоді
Selection.CurrentRegion.Select
Вибір. Копіювати
Встановити xPSheet = Worksheets.Item(xSWName)
xIntR = xPSheet.UsedRange.Rows.Count
xPSheet.Cells(xIntR + 1, 1).PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
End If
Application.ScreenUpdating = True
End Sub
Цей коментар був мінімізований модератором на сайті
Привіт!
Чи є спосіб створити код, щоб кнопка могла скопіювати діапазон (скажімо, A1: D5).
А потім вставте його в формат A6:D10.

І якщо я натисну кнопку ще раз, він скопіює A1:D5 до A11:D15.

І так далі?
Цей коментар був мінімізований модератором на сайті
Привіт Джонас
На жаль, не можу вам допомогти. Дякуємо за коментар.
Цей коментар був мінімізований модератором на сайті
Це чудово — я адаптував для свого s.sheet, але мені потрібно, щоб він був більш динамічним і використовував мітки, а не жорсткий код розташування клітинок.
Тобто в діапазоні A2-A6 знайдіть ім'я "Джеймі", а потім знайдіть ім'я в стовпці K2 і вставте

Мені також потрібно, щоб кожен клік ставив +1 і запускав те саме копіювання та вставлення, але до наступного стовпця, тобто

клацніть 1 - вставляйте в Q1, клацніть 2 - вставте в Q2 тощо

приклад:

Колонка A Стовпець B ...... Колонка K Колонка L
1. Назва відпрацьованих годин Ім'я Q1 Q2 Q3 Q4
2. Джеймі 22 Семмі
3. Семмі 40 Джудіт
4. Джудіт 18 Джеймі
5. Таммі 16 Кіт
6. Кіт 42 Таммі


Будь-яка допомога буде дуже вдячна.
Цей коментар був мінімізований модератором на сайті
як закодувати для копіювання клітинки з діапазону a1 до a5, щоб вставити в c1 і в наступну доступну клітинку послідовно?
Цей коментар був мінімізований модератором на сайті
а також копіюйте та вставляйте клітинку по одній.
Дякую за твою допомогу!
Цей коментар був мінімізований модератором на сайті
Привіт, народ. це потребує допомоги, будь ласка. Мені потрібно створити кнопку 10* на моєму робочому аркуші (Аркуш1), яка копіюватиме 3 клітинки, наприклад: Лист1, A1, B1, C1. потім вставте це в лист 2 A1, B1, C1. тоді, якщо я натисну кнопку 4, наприклад: Лист1, A4, B4, C4, мені потрібно вставити це в Аркуш2, A2, B2, C2. Якщо я натисну Кнопку 2, то вона повинна передаватися в Лист2, А3, В3, С3. Я сподіваюся, що це має сенс.
There are no comments posted here yet
Load More
Залишайте свої коментарі
Публікація як гість
×
Оцініть цю публікацію:
0   Персонажі
Рекомендовані місця

Слідуй за нами

Copyright © 2009 - WWW.extendoffice.com. | Всі права захищені. На основі ExtendOffice. | Карта сайту
Microsoft та логотип Office є товарними знаками або зареєстрованими товарними знаками Microsoft Corporation у США та / або інших країнах.
Захищений Sectigo SSL