В буфере обмена находится большой объем данных excel
Я копирую строки (иногда всего 8 X 17) данных из нескольких файлов Excel на один лист в другом файле Excel, используя следующие команды:
Application.DisplayAlerts = False , не работает.
Возможно, вы захотите найти код, очищающий буфер обмена, похоже, на этом форуме много таких вопросов.
2 ответа
Это не проблема Excel, поскольку я видел предупреждение буфера обмена всякий раз, когда вы копируете большие данные из других приложений. Однако при использовании Excel у вас может быть несколько способов обойти это с помощью VBA.
В автоматизированном сценарии, в котором для вырезания или копирования ячеек используется макрос Visual Basic для приложений, вы можете не считать приемлемым вариант нажатия клавиши ESC для предотвращения предупреждения . В этом случае используйте любой из следующих программных методов, чтобы предотвратить предупреждение.
Если вы используете макрос Visual Basic для приложений для вырезания или копирования ячеек, вставьте следующую строку непосредственно перед строкой, закрывающей книгу:
ActiveSheet.Range ("A1"). Копировать
Если вы используете макрос Visual Basic для приложений для вырезания или копирования ячеек, вставьте следующую строку непосредственно перед строкой, закрывающей книгу
Где "рабочая книга" - это объект вашей книги.
ПРИМЕЧАНИЕ. Установив для CutCopyMode значение True или False, Excel может отменить режим вырезания или копирования.
Если вы используете макрос Visual Basic для приложений для вырезания или копирования ячеек, вставьте следующую строку непосредственно перед строкой, закрывающей книгу
Рабочая тетрадь. сохранить
Где "рабочая книга" - это объект вашей книги. Когда вы сохраняете книгу, Excel больше не находится в режиме вырезания или копирования.
Исходную статью можно найти на эта страница поддержки Microsoft
Вы уже пробовали что-то подобное:
(Возможно, вам может потребоваться перебрать все ячейки в диапазонах)
Иногда на то, чтобы придумать некоторые вещи, уходит очень много времени. Но когда их УЖЕ придумали, то постфактум они кажутся очевидными и даже банальными. Из серии "а что, так можно было?".
С самых первых версий в строке состояния внизу окна Microsoft Excel традиционно отображались итоги по выделенным ячейкам:
При желании, можно было даже щёлкнуть по этим итогам правой кнопкой мыши и выбрать в контекстном меню, какие именно функции мы хотим видеть:
И только совсем недавно в последних обновлениях Excel разработчики Microsoft добавили простую, но гениальную фишку - теперь при щелчке мышью по этим итогам они копируются в буфер!
Но что делать тем, у кого пока (или уже?) нет такой версии Excel? Тут могут помочь несложные макросы.
Копирование суммы выделенных ячеек в Буфер с помощью макроса
Откройте на вкладке Разработчик (Developer) редактор Visual Basic или воспользуйтесь для этого сочетанием клавиш Alt + F11 . Вставьте новый пустой модуль через меню Insert - Module и скопируйте туда следующий код:
Логика его работы проста:
- Сначала идёт "защита от дурака" - мы проверяем что именно выделено. Если выделены не ячейки (а, например, диаграмма), то выходим из макроса.
- Затем при помощи команды GetObject мы создаем новый объект данных, где будет храниться впоследствии наша сумма выделенных ячеек. Длинный и непонятный буквенно-цифровой код - это, на самом деле, ссылка на ветку реестра Windows, где лежит библиотека Microsoft Forms 2.0 Object Library, которая умеет создавать такие объекты. Иногда такой трюк ещё называют неявным поздним связыванием. Если его не использовать, то пришлось бы заранее делать в файле ссылку на эту библиотеку через меню Tools - References.
- Сумма выделенных ячеек считается командой WorksheetFunction.Sum(Selection), а затем полученная сумма помещается в буфер обмена командой PutInClipboard
Для удобства использования можно, конечно же, повесить этот макрос на сочетание клавиш с помощью кнопки Макросы на вкладке Разработчик (Developer - Macros) .
А если хочется видеть, что именно скопировалось после выполнения макроса, то можно включить панель Буфер обмена с помощью маленькой стрелки в правом нижнем углу соответствующей группы на Главной (Home) вкладке:
Не только сумма
Если кроме банальной суммы хочется что-то ещё, то можно воспользоваться любой из функций, которую нам предоставляет объект WorksheetFunction:
Например, там есть:
- Sum - сумма
- Average - среднее арифметическое
- Count - количество ячеек с числами
- CountA - количество заполненных ячеек
- CountBlank - количество пустых ячеек
- Min - минимальное значение
- Max - максимальное значение
- Median - медиана (центральное значение)
- . и т.д.
С учетом фильтров и скрытых строк-столбцов
Что если в выделенном диапазоне окажутся скрытые (вручную или фильтром) строки или столбцы? Чтобы не учитывать их в итогах, нужно будет чуть-чуть модифицировать наш код, добавив к объекту Selection свойство SpecialCells(xlCellTypeVisible):
В этом случае подсчет любой функции итога будет применён только к видимым ячейкам.
Если нужна живая формула
Если пофантазировать, то можно придумать сценарии, когда в буфер лучше скопировать не число (константу), а именно живую формулу, которая подсчитывает нужные нам итоги по выделенным ячейкам. В этом случае придётся склеить формулу из фрагментов, добавив к ней дополнительно удаление знаков доллара и замену запятой (которая используется как разделитель адресов нескольких выделенных диапазонов в VBA) на точку с запятой:
Суммирование с дополнительными условиями
Ну и, наконец, для совсем уже маньяков можно написать макрос, который будет суммировать не все выделенные ячейки, а только те, что удовлетворяют заданным условиям. Так, например, будет выглядеть макрос помещающий в Буфер сумму выделенных ячеек, если их значения больше 5 и при этом они залиты любым цветом:
Как легко сообразить, условия можно задать абсолютно любые - вплоть до форматов ячеек - и в любых количествах (в том числе, связывая их между собой логическими операторами or или and). Простор для фантазии большой.
Я копирую строки (иногда всего 8 X 17) данных из нескольких файлов Excel на один лист в другом файле Excel, используя следующие команды:
Application.DisplayAlerts = False , не работает.
Возможно, вы захотите найти код, очищающий буфер обмена, похоже, на этом форуме много таких вопросов.
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно.
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей.
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
У каждого из нас бывали случаи, когда нам нужно отцентрировать блочный элемент, но мы не знаем, как это сделать. Даже если мы реализуем какой-то.
Ответы 3
Вы уже пробовали что-то подобное:
(Возможно, вам может потребоваться перебрать все ячейки в диапазонах)
Это не проблема, связанная с Excel, поскольку я видел предупреждение буфера обмена всякий раз, когда вы копируете большие данные из других приложений. Однако при использовании Excel у вас может быть несколько способов обойти это с помощью VBA.
В автоматизированном сценарии, который использует макрос Visual Basic для приложений для вырезания или копирования ячеек, вы можете не считать приемлемым вариант нажатия клавиши ESC, чтобы предотвратить предупреждение. В этом случае используйте любой из следующих программных методов, чтобы предотвратить предупреждение.
Если вы используете макрос Visual Basic для приложений для вырезания или копирования ячеек, вставьте следующую строку непосредственно перед строкой, закрывающей книгу:
ActiveSheet.Range ("A1"). Копировать
Предупреждение не отображается, если буфер обмена содержит 100 или меньше ячеек.
Если вы используете макрос Visual Basic для приложений для вырезания или копирования ячеек, вставьте следующую строку непосредственно перед строкой, закрывающей книгу
где "рабочая книга" - это объект вашей книги.
ПРИМЕЧАНИЕ. Установив для CutCopyMode значение True или False, Excel может отменить режим вырезания или копирования.
Если вы используете макрос Visual Basic для приложений для вырезания или копирования ячеек, вставьте следующую строку непосредственно перед строкой, закрывающей книгу
рабочая тетрадь. сохранить
где "рабочая книга" - это объект вашей книги. Когда вы сохраняете книгу, Excel больше не находится в режиме вырезания или копирования.
Все скопированные данные заносятся во временную область памяти под названием «Буфер обмена Windows». Но для приложений Microsoft Office разработана еще одна область памяти – буфер обмена Office. Чем они отличаются?
В один момент в буфере Windows может храниться один фрагмент данных, а в буфере Office – до 24. Чем это может быть полезно? При копировании нескольких участков, например, с разных листов, вы можете сначала скопировать все данные, а потом вставить. Так, вы не будете постоянно переключаться между листами для многократного копирования-вставки . Мы сначала собираем в буфер всю информацию, а потом вставляем поочередно или всё сразу. Каждое выполнение операции «Копирование» вносит выделенную информацию в начало списка в буфере обмена, дополняя список скопированных областей.
Чтобы воспользоваться содержимым буфера Office, Нажмите пиктограмму Буфер обмена на ленте ( Главная-Буфер обмена )
Буфер обмена Microsoft Office
После нажатия, откроется окно буфера. Каждая запись в нём будет отображать примерное содержание скопированного участка. Чтобы вставить его на лист, выполните такие действия:
- Установите курсор в ту ячейку, куда нужно вставить данные
- Найдите в буфере обмена Office нужные данные и дважды кликните по ним левой кнопкой мыши. Информация будет вставлена в заданное вами место
Чтобы вставить всё содержимое буфера – нажмите Вставить всё . Чтобы удалить содержимое буфера – нажмите Очистить всё .
Если внизу окна нажать Параметры — появится контекстное меню управления буфером. Здесь хочу остановиться на первых двух командах:
- Автоматическое отображение буфера обмена Office – открывать буфер при запуске Excel.
Включите эту опцию, если часто пользуетесь буфером - Открывать буфер обмена Office при двойном нажатии Ctrl+C – автоматическое отображение буфера, если в нём содержится более одной записи. Так же, удобно при частом использовании буфера.
Учтите, что при внесении формул в буфер обмена Office, они заменяются значениями (результатом вычисления). Если вам нужно скопировать несколько формул – делайте это классическим способом, поочерёдно, без использования буфера Эксель.
Значение ошибок в буфере обмена?
Ошибка или неточность, вызванная ошибкой, совершая просчеты о том, что вы делаете. Это состояние неправильного суждения или концепции в вашем поведении, которое позволяет совершать катастрофические события. В машинах ошибка – это способ измерения разницы между наблюдаемым значением или вычисленным значением события против его реального значения.
Это отклонение от правильности и точности. Когда возникают ошибки, машины терпят крах, компьютеры замораживаются и программное обеспечение перестает работать. Ошибки – это в основном непреднамеренные события. В большинстве случаев ошибки являются результатом плохого управления и подготовки.
Копирование несколько элементов в буфер
Для начала продемонстрируем на примере как с помощью буфера обмена можно быстро заполнять данные в таблице. Для этого создадим исходную табличку как показано на рисунке:
Для быстрого заполнения ячеек с помощью буфера необходимо:
-
Открыть окно буфера обмена нажав на угловую кнопку вкладки «Главная» как показано на рисунке:
Как видите, вам теперь не приходится каждый раз копировать, когда необходимо заполнять ячейки повторяющимися значениями. Это очень удобно и экономно по времени.
Специальная вставка с операцией
Этот вид вставки позволяет выполнить вычисления без применения формул. Например, нужно число в ячейке А1 умножить на число в А2. Скопируйте ячейку А2, установите курсор в А1 и вызовите окно Специальная вставка . В блоке Операция установите маячок Умножить и нажмите Ок . В итоге, значение в А1 будет умножено на значение из А2.
Что делать, если ошибка постоянно появляется?
- Отследите, какие программы помимо Microsoft Office Excel работают во время возникновения ошибок. Если одна из них использует клипборд — меняйте внутренние настройки этого приложения, выключайте на время работы с табличными данными или вовсе удаляйте из системы. Чаще всего проблема появляется при работе с различными свитчерами.
- Произведите восстановление файлов приложения в панели управления. Для этого просто ищем приложение в списке установленных и жмём на соответствующее поле в дополнительном меню программы, если оно есть.
- Если после произведённых манипуляций всё ещё не удаётся очистить буфер обмена Excel, то стоит попробовать откатить операционку назад, на время, когда с ним всё было в порядке. Для этого нужно иметь уже созданные контрольные точки. Если вы лично не настраивали расписание их создания и вручную тоже ничего не делали — не отчаивайтесь, некоторые приложения создают такие контрольные точки перед началом своей работы. Чтобы проверить наличие контрольной точки нужно зайти в защиту системы. Для этого кликаем правой кнопкой по иконке компьютера и выбираем пункт Свойства, мы попадём в меню Система, где в левой колонке нам нужно будет найти строку Защита системы. Заходим туда и жмём кнопку Восстановить . Появится список всех сохранённых контрольных точек. Если их, вообще, нет, то не расстраиваемся, есть ещё способы для решения проблемы с ошибкой открытия буфера обмена в Excel. Если же точки есть — восстанавливаем на ближайшую, дата создания которой точно вас удовлетворит. В будущем создайте расписание создания точек, этот приём вам ещё не раз пригодится.
- Ошибка очистки буфера обмена Excel чаще всего бывает в версиях программы 2003 и 2007 годов, попробуйте поставить более новую версию. Если переходить на другую версию не хочется, то просто попробуйте удалить Office и поставить его заново. Не вздумайте вручную удалять файлы офисных программ, для этого у Майкрософт существует специальная утилита, которую можно скачать на официальном сайте.
- Если ничего не помогает, а контрольной точки нет — переустанавливайте операционную систему. Действие радикальное, но точно вернёт всё на свои места. Если боитесь потерять драгоценные файлы, то разбейте локальный диск, если он один, на несколько частей. В итоге вы отформатируете только диск с операционной системой, а пользовательские файлы останутся нетронутыми.
ВАЖНО. Не спешите удалять всё подряд, отследите причину и выберите самый удобный и быстрый вариант для вашего случая.
Причины ошибок в буфере обмена?
Если вы получили эту ошибку на своем ПК, это означает, что произошла сбой в работе вашей системы. Общие причины включают неправильную или неудачную установку или удаление программного обеспечения, которое может привести к недействительным записям в вашем реестре Windows, последствиям атаки вирусов или вредоносных программ, неправильному отключению системы из-за сбоя питания или другого фактора, кто-то с небольшими техническими знаниями, случайно удалив необходимый системный файл или запись в реестре, а также ряд других причин. Непосредственной причиной ошибки «Ошибка в буфере обмена» является неправильное выполнение одной из обычных операций с помощью системного или прикладного компонента.
как скопировать в буфер обмена
VB 6 обеспечивает Clipboard объект, который делает все это чрезвычайно простым и удобным, но, к сожалению, это недоступно из VBA.
если бы это был я, я бы пошел по маршруту API. Нет причин бояться вызова native APIs; язык предоставляет вам возможность сделать это по какой-то причине.
однако более простой альтернативой является использование DataObject класса, который является частью библиотеки форм. Я бы рекомендовал только этот маршрут, если вы уже использование функций из библиотеки форм в приложении. Добавление ссылки на эту библиотеку только использовать буфер обмена, кажется, немного глупо.
например, чтобы поместить текст в буфер обмена, вы можете использовать следующий код:
или, чтобы скопировать текст из буфера обмена в строковую переменную:
Если эта ссылка не проходит, найдите “объект буфера обмена для VBA” в Центре разработки Office > Microsoft Office для форумов разработчиков > раздел Word для разработчиков.
Я создал два класса, запустил его тестовые случаи, и он отлично работал внутри Outlook 2007 SP3 32-бит VBA под Windows 7 64-бит. Скорее всего, он будет работать для доступа. Совет: чтобы переименовать классы, выберите класс в окне “проект” VBA, затем нажмите ” Вид “в строке меню и нажмите” окно свойств ” (или просто нажмите F4).
С его классами это то, что требуется для копирования в/из буфер обмена:
Он также предоставляет другие функции для управления буфером обмена.
Он также преодолевает 32KB MSForms_DataObject.Помощью setText ограничение-основная причина, почему помощью setText часто терпит неудачу. Однако, имейте в виду, что, к сожалению, я не нашел ссылку на Microsoft признавая это ограничение.
Специальная вставка в Эксель
Специальная вставка в Эксель уже частично описана в первом посте о копировании ячеек . Напомню, если перед вставкой выполнить ленточную команду Главная – Буфер обмена – Вставить (стрелка вниз на комбинированной кнопке) – откроются параметры специальной вставки Эксель. С их помощью можно копировать не всю ячейку полностью, а, например, только данные , форматы , или данные с форматами числа. Если в открывшемся окне выбрать Специальная вставка , откроется окно гибкой настройки вставки:
- Все – скопировать ячейку полностью (содержимое, форматы, проверка данных)
- Формулы – скопировать только формулы
- Значения – вставить результаты вычислений вместо формул
- Форматы – скопировать только форматирование
- Примечания – копировать только примечания к ячейкам
- Условия на значения – скопировать проверку значений
- С исходной темой – применить настройки темы, как у исходной ячейки
- Без рамки – Скопировать всё, кроме рамок ячеек
- Ширины столбцов – установить ширину столбца, как у ячейки-источника
- Формулы и форматы чисел – копирует только формулы и форматирование чисел
- Значения и форматы чисел – заменяет формулы на результаты вычисления, применяет форматирование, как в источнике
- Все условные форматы объединения – сливает условные форматирования в исходных ячейках и ячейке для вставки
Управление буфером обмена Excel
Буфер обмена может содержать до 24 элементов. В Excel неважно, что копировать: таблицу, столбец, строку, содержимое одной ячейки или просто текст – все это является отдельными элементами в независимости от его объема их информации. При копировании 25-го элемента – первый удаляется автоматически.
Вы можете управлять содержимым буфера. Если в нем находятся лишние элементы, удалите их. Для этого щелкните правой кнопкой мышки по лишнему элементу и выберите опцию «Удалить». Чтобы полностью очистить буфер обмена Excel следует в боковом окне нажать на кнопку «Очистить все».
Информация о количестве элементов выводится в заголовке окна. Там же находится кнопка закрытия бокового окна инструмента «X».
Если вам мешает боковое окно инструмента, но вы желаете продолжать его наполнять элементами, то сделайте так:
- щелкните по кнопке «Параметры», которая расположена в низу окна;
- выберите опцию «Собирать данные без отображения буфера обмена Office»;
Режим работы комплексного копирования сохраниться и окно не будет мешать, а когда уже все данные для заполнения будут собраны в буфер, снова откройте его окно для выборочной вставки скопированных элементов.
Так работать очень удобно, особенно когда нужно копировать данные на другие листы Excel или в другие программы пакета MS Office (например, Word). Каждая программа, которая входит в пакет MS Office обладает инструментом «Буфер обмена». А значит, в каждой из этих программ можно вызвать окно буфера для выборочной вставки элементов. Данный инструмент позволяет эффективно организовать одновременную работу с несколькими документами.
Примечание. Перемещение данных осуществляется в такой же способ, как и копирование. Только вместо комбинации клавиш CTRL+C следует нажимать CTRL+X, а вместо опций «копировать» нужно выбирать опцию «вырезать».
Заключение
Практическое применение преимуществ инструмента «Буфер обмена» лучше всего продемонстрировать на примерах.
С помощью расширенных функций буфера обмена можно повысить производительность работы в Excel при выполнении копирования и вставки элементов. Это одни из наиболее часто используемых операций при работе с программой Excel. Поэтому стоит научиться их использовать профессионально. Тем более что это не сложно.
Копирование несколько элементов в буфер
Для начала продемонстрируем на примере как с помощью буфера обмена можно быстро заполнять данные в таблице. Для этого создадим исходную табличку как показано на рисунке:
Для быстрого заполнения ячеек с помощью буфера необходимо:
- Открыть окно буфера обмена нажав на угловую кнопку вкладки «Главная» как показано на рисунке:
- В ячейку C2 и C3 введем текст «логистика», «администрация».
- Теперь копируем введенный текст комбинацией клавиш CTRL+C или через «Главная»-«Копировать» сначала с C2. Потом отдельно копируем значение из C3. Обратите внимание, в окне буфера появились новые элементы.
- Выделяем диапазон ячеек C4:C5.
- Щелкните по элементу «администрация». Выделенные ячейки заполнятся соответствующими значениями.
- В такой же способ вставьте в диапазон ячеек C6:C8 слово логистика.
Как видите, вам теперь не приходится каждый раз копировать, когда необходимо заполнять ячейки повторяющимися значениями. Это очень удобно и экономно по времени.
Управление буфером обмена Excel
Буфер обмена может содержать до 24 элементов. В Excel неважно, что копировать: таблицу, столбец, строку, содержимое одной ячейки или просто текст – все это является отдельными элементами в независимости от его объема их информации. При копировании 25-го элемента – первый удаляется автоматически.
Вы можете управлять содержимым буфера. Если в нем находятся лишние элементы, удалите их. Для этого щелкните правой кнопкой мышки по лишнему элементу и выберите опцию «Удалить». Чтобы полностью очистить буфер обмена Excel следует в боковом окне нажать на кнопку «Очистить все».
Информация о количестве элементов выводится в заголовке окна. Там же находится кнопка закрытия бокового окна инструмента «X».
Если вам мешает боковое окно инструмента, но вы желаете продолжать его наполнять элементами, то сделайте так:
- щелкните по кнопке «Параметры», которая расположена в низу окна;
- выберите опцию «Собирать данные без отображения буфера обмена Office»;
- закройте окно буфера, щелкнув по крестику (х).
Режим работы комплексного копирования сохраниться и окно не будет мешать, а когда уже все данные для заполнения будут собраны в буфер, снова откройте его окно для выборочной вставки скопированных элементов.
Так работать очень удобно, особенно когда нужно копировать данные на другие листы Excel или в другие программы пакета MS Office (например, Word). Каждая программа, которая входит в пакет MS Office обладает инструментом «Буфер обмена». А значит, в каждой из этих программ можно вызвать окно буфера для выборочной вставки элементов. Данный инструмент позволяет эффективно организовать одновременную работу с несколькими документами.
Примечание. Перемещение данных осуществляется в такой же способ, как и копирование. Только вместо комбинации клавиш CTRL+C следует нажимать CTRL+X, а вместо опций «копировать» нужно выбирать опцию «вырезать».
Читайте также: