Great code but wondered how I can paste values rather than just paste?
Thanks :)
Например, у вас есть большой рабочий лист, и теперь вы хотите скопировать только некоторые выбранные диапазоны и распространить их на другие рабочие листы. Но когда вы выберете несколько диапазонов и нажмете «Копировать», появится диалоговое окно с напоминанием: «Эта команда не может использоваться для множественного выбора». Как в этом состоянии быстро скопировать несколько выбранных диапазонов? Вот несколько хитростей, которые помогут вам решить эту задачу.
С помощью буфер обмена, вы можете вставить все выбранные диапазоны в другой диапазон или лист за раз. Пожалуйста, сделайте следующее:
1. Нажмите Главная > в буфер обмена группа для отображения буфер обмена хлеб.. Смотрите скриншот:
2. А затем скопируйте выбранные диапазоны, которые вам нужны, по одному. При этом скопированные диапазоны появились в буфер обмена хлеб. см. снимок экрана выше:
3. Выберите первую ячейку целевого диапазона, в который вы вставите все скопированные диапазоны, и нажмите Вставить все в буфер обмена Панель.
А затем все скопированные диапазоны были вставлены в указанный диапазон назначения.
Объединение десятков листов из разных книг в один может оказаться утомительным занятием. Но с Kutools for Excel's Объединить (рабочие листы и рабочие тетради) утилиту, вы можете сделать это всего за несколько кликов!
Полнофункциональная бесплатная 30-дневная пробная версия!
Kutools for Excel - Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная 30-дневная пробная версия, кредитная карта не требуется! Get It Now
С помощью кода VBA вы также можете скопировать несколько выбранных диапазонов и вставить их в любой другой лист.
1, Удержание Ctrl и выберите несколько несмежных диапазонов, которые вы хотите использовать.
2, Нажмите другой + F11 в то же время, чтобы открыть Microsoft Visual Basic для приложений окна, нажмите Вставить > модуль, и введите в модуль следующий код:
Option Explicit Sub CopyMultipleSelection () Dim SelAreas () As Range Dim PasteRange As Range Dim UpperLeft As Range Dim NumAreas As Integer, i As Integer Dim TopRow As Long, LeftCol As Integer Dim RowOffset As Long, ColOffset As Integer Dim NonEmptyCellCount если диапазон не выбран If TypeName (Selection) <> «Range» Then MsgBox «Выберите диапазон для копирования. Допускается множественный выбор». Exit Sub End If 'Сохранить области как отдельные объекты Range NumAreas = Selection.Areas.Count ReDim SelAreas (1 To NumAreas) For i = 1 To NumAreas Set SelAreas (i) = Selection.Areas (i) Next' Определить верхний левый ячейка в множественном выборе TopRow = ActiveSheet.Rows.Count LeftCol = ActiveSheet.Columns.Count For i = 1 To NumAreas If SelAreas (i) .Row <TopRow Then TopRow = SelAreas (i) .Row If SelAreas (i) .Column <LeftCol Then LeftCol = SelAreas (i) .Column Next Set UpperLeft = Cells (TopRow, LeftCol) 'Получить адрес вставки при ошибке Возобновить следующий Set PasteRange = Application.InputBox _ (Prompt: = "Укажите верхнюю левую ячейку для вставки range: ", _ Title: =" Copy Mutliple Selection ", _ Type: = 8) On Error GoTo 0 'Выход при отмене Если TypeName (PasteRange) <>" Range "Then Exit Sub' Убедитесь, что только верхняя левая ячейка used Set PasteRange = PasteRange.Range ("A1") 'Проверить диапазон вставки для существующих данных NonEmptyCellCount = 0 For i = 1 To NumAreas RowOffset = SelAreas (i) .Row - TopRow ColOffset = Sel Области (i) .Column - LeftCol NonEmptyCellCount = NonEmptyCellCount + _ Application.CountA (Range (PasteRange.Offset (RowOffset, ColOffset), _ PasteRange.Offset (RowOffset + SelAreas (i) .Rows.Count - 1, _A ColOffset - 1) (i) .Columns.Count - 0))) Next i 'Если диапазон вставки не пуст, предупредить пользователя If NonEmptyCellCount <> 1 Then _ If MsgBox ("Overwrite existing data?", vbQuestion + vbYesNo, _ "Copy Multiple Selection ") <> vbYes Then Exit Sub 'Скопируйте и вставьте каждую область For i = XNUMX в NumAreas RowOffset = SelAreas (i) .Row - TopRow ColOffset = SelAreas (i) .Column - LeftCol SelAreas (i) .Copy PasteRange.Offset ( RowOffset, ColOffset) Next i End Sub
3, Затем нажмите Выполнить кнопку для запуска кода.
4. А теперь укажите ячейку для вставки диапазонов в проем Копировать множественный выбор диалоговое окно и щелкните OK кнопка. Смотрите скриншот:
Ошибка Копировать несколько диапазонов полезности Kutools for Excel может помочь вам быстро скопировать несколько диапазонов из активного листа. Пожалуйста, сделайте следующее:
Kutools for Excel - Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная 30-дневная пробная версия, кредитная карта не требуется! Get It Now
1. Выберите диапазоны, которые вы хотите использовать, один за другим, не удерживая Ctrl ключ, а затем щелкните Kutools > Копировать диапазоны. Смотрите скриншот:
2. В Копировать несколько диапазонов диалоговое окно, отметьте Все вариант из Специальная вставка и нажмите Хорошо буттон. Смотрите скриншот выше:
Примечание: Если вы хотите сохранить высоту строки и ширину столбца в качестве исходных диапазонов, проверьте Включая высоту строки вариант и Включая ширину столбца в диалоговом окне "Копировать несколько диапазонов".
3. И укажите ячейку для вставки диапазонов в следующем окне подсказки и щелкните значок OK кнопку.
И теперь все выбранные диапазоны будут вставлены в указанную ячейку с той же высотой строки и шириной столбца, что и исходные выборки.
Щелкните здесь для получения дополнительной информации об утилите Copy Multiple Ranges
Kutools for Excel - Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная 30-дневная пробная версия, кредитная карта не требуется! Get It Now
Kutools for Excel предоставляет еще один Комбинировать листы утилита для простого копирования нескольких диапазонов из многих листов или книг в Excel. Пожалуйста, сделайте следующее:
Kutools for Excel - Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная 30-дневная пробная версия, кредитная карта не требуется! Get It Now
1. Нажмите Kutools Plus > Сочетать.
2. В открывшемся диалоговом окне «Объединить рабочие листы - шаг 1 из 3» установите флажок Объедините несколько листов из книги в один лист и нажмите Далее кнопку.
3. В диалоговом окне «Объединить рабочие листы - шаг 2 из 3» выполните следующие действия:
(1) Выберите книгу в Список рабочих книг раздел, а затем щелкните Выполнить кнопка позади каждого листа, чтобы указать диапазон из каждого листа;
(2) Щелкните значок Добавить кнопку, чтобы добавить другие книги, из которых вы будете копировать диапазоны, а затем повторите выше (1), чтобы указать диапазоны в добавленной книге.
(3) Щелкните значок Завершить кнопку.
Kutools for Excel - Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная 30-дневная пробная версия, кредитная карта не требуется! Get It Now
4. Затем появляется диалоговое окно Kutools for excel и запрашивает сохранение сценария комбинации. Пожалуйста, нажмите на Да или Нет кнопку как вам нужно.
Пока все указанные диапазоны из нескольких листов или книг были скопированы и вставлены в новую книгу.