Все скопированные данные хранятся во временной области памяти под названием "Буфер обмена Windows". Но для приложений Microsoft Office существует другая область памяти - буфер обмена Office. Чем они отличаются?
Буфер обмена Windows может одновременно хранить один фрагмент данных, в то время как буфер обмена Office может хранить до 24 фрагментов данных. Как это может быть полезно? При копировании нескольких фрагментов, например, из разных рабочих листов, можно сначала скопировать все данные, а затем вставить. Таким образом, вам не придется постоянно переключаться между листами для многократного копирования-вставки. Сначала буферизируйте всю информацию, а затем вставляйте по одному или все сразу. Каждый раз при выполнении операции "Копировать" выбранная информация помещается в буфер обмена в верхней части списка, завершая список скопированных областей.
Чтобы использовать содержимое буфера обмена Office, коснитесь значка буфера обмена на ленте (Главная - Буфер обмена).
Буфер обмена Microsoft Office
При нажатии откроется окно Буфер обмена. Каждая запись в нем будет отображать примерное содержание скопированного вами раздела. Чтобы вставить его на рабочий лист, выполните следующие действия:
- Поместите курсор в ячейку, в которую вы хотите вставить данные
- Найдите нужные данные в буфере обмена Office и дважды щелкните их. Информация будет вставлена в указанное вами место
Чтобы вставить все содержимое буфера обмена, нажмите кнопку Вставить все. Чтобы удалить содержимое буфера обмена, нажмите кнопку Очистить все.
Если вы нажмете кнопку Настройки в нижней части окна, вы увидите контекстное меню для управления буфером. Здесь я хочу сосредоточиться на первых двух командах:
- Автоматическое отображение буфера обмена Office - открытие буфера обмена при запуске Excel.
Включите этот параметр, если вы часто используете буфер - Открыть буфер обмена Office двойным нажатием Ctrl+C - автоматически отображать буфер обмена, если он содержит более одной записи. Также полезно, если вы часто используете буфер обмена.
Обратите внимание, что при копировании формул в буфер обмена они заменяются значениями (результат вычисления). Если вам нужно скопировать несколько формул - сделайте это классическим способом, по одной, без использования буфера обмена Excel.
Значение ошибок в буфере обмена?
Ошибка или неточность, вызванная совершением ошибки, неправильным расчетом того, что человек делает. Это состояние ошибочного суждения или концепции в вашем поведении, которое позволяет произойти катастрофическим событиям. В технике ошибка - это способ измерения разницы между наблюдаемым значением или рассчитанным значением события по отношению к его фактическому значению.
Это отклонение от правильности и точности. Когда возникают ошибки, машины выходят из строя, компьютеры зависают, а программное обеспечение перестает работать. Ошибки - это в основном непреднамеренные события. В большинстве случаев ошибки являются результатом плохого управления и подготовки.
Копирование несколько элементов в буфер
Для начала продемонстрируем на примере, как буфер обмена можно использовать для быстрого заполнения данных в таблице. Для этого создайте начальную таблицу, как показано на рисунке:
Чтобы быстро заполнить ячейки с помощью буфера обмена:
- Введите текст "логистика", "администрация" в ячейки C2 и C3.
- Теперь скопируйте введенный текст, нажав CTRL+C или нажав "Главная"-"Копировать" сначала в C2. Затем отдельно скопируйте значение из C3. Обратите внимание на новые элементы в окне буфера.
- Выделите диапазон ячеек C4:C5.
- Нажмите на элемент "администрирование". Выбранные ячейки будут заполнены соответствующими значениями.
- Таким же образом вставьте слово логистика в диапазон ячеек C6:C8.
Как видите, больше нет необходимости копировать каждый раз, когда нужно заполнить ячейки повторяющимися значениями. Это очень удобно и экономит время.
Специальная вставка с операцией
Этот тип пасты позволяет выполнять вычисления без использования формул. Например, число в ячейке A1 умножается на число в ячейке A2. Скопируйте ячейку A2, установите курсор в A1 и вызовите команду Paste Special. В поле Операция установите флажок Умножение и нажмите OK. В результате значение в A1 будет умножено на значение в A2.
Что делать, если ошибка постоянно появляется?
- Отслеживайте, какие программы Excel, не относящиеся к Microsoft Office, были запущены в момент возникновения ошибки. Если один из них использует буфер обмена - измените внутренние настройки приложения, отключите его при работе с табличными данными или вообще удалите из системы. Проблема обычно возникает при использовании разных переключателей.
- Восстановите файлы приложений в панели управления. Для этого просто найдите приложение в списке установленных приложений и нажмите на его поле в меню дополнительных программ, если оно есть.
- Если после проделанных манипуляций очистить буфер обмена в Excel все равно не удается, можно попробовать откатить операционную систему до того времени, когда с Excel все было в порядке. Для этого у вас уже должны быть установлены контрольные точки. Если вы лично не установили расписание для их создания и не сделали ничего вручную - не отчаивайтесь, некоторые приложения создают эти контрольные точки перед запуском. Чтобы проверить наличие контрольной точки, необходимо войти в защиту системы. Для этого щелкните правой кнопкой мыши на значке компьютера и выберите пункт Свойства, вы попадете в меню Система, где в левой колонке нужно найти строку Защита системы. Перейдите туда и нажмите на кнопку "Восстановить". Появится список всех сохраненных контрольных точек.
- Ошибка очистки буфера обмена Excel обычно возникает в версиях 2003 и 2007, попробуйте поставить более новую версию. Если вы не хотите обновляться, попробуйте удалить Office и установить его заново. Не пытайтесь удалять программные файлы вручную, для этого можно скачать специальный инструмент с официального сайта Microsoft.
- Если ничего не помогает и контрольная точка отсутствует, переустановите операционную систему. Действие радикальное, но оно, безусловно, восстановит все как было. Если вы опасаетесь потерять ценные файлы, разделите локальный диск, если он один, на несколько частей. Это позволит отформатировать только диск с операционной системой и оставить ваши файлы нетронутыми.
ВАЖНО. Не спешите все стирать, проследите за причинами и выберите наиболее удобный и быстрый вариант для вашего случая.
Причины ошибок в буфере обмена?
Если вы получаете эту ошибку на своем компьютере, это означает, что ваша система неисправна. Наиболее распространенными причинами являются неправильная или неудачная установка или удаление программного обеспечения, что может привести к появлению неправильных записей в реестре Windows, последствия атаки вируса или вредоносного ПО, неправильное выключение системы из-за сбоя питания или другого фактора, случайное удаление важного системного файла или записи в реестре человеком с недостаточными техническими знаниями и многие другие причины. Непосредственной причиной "Clipboard Error" является неправильное выполнение одной из общих операций системным компонентом или приложением.
как скопировать в буфер обмена
VB 6 предоставляет объект Clipboard, который делает все это чрезвычайно простым и удобным, но, к сожалению, он недоступен из VBA.
Если бы это был я, я бы пошел по пути API. Нет причин бояться вызова нативных API; язык дает вам такую возможность не просто так.
Однако более простой альтернативой является использование класса DataObject, который является частью библиотеки форм. Я бы рекомендовал этот путь только в том случае, если вы уже используете функции из библиотеки форм в своем приложении. Добавление ссылки на эту библиотеку только для того, чтобы использовать буфер обмена, кажется немного глупым.
Например, чтобы поместить текст в буфер обмена, вы можете использовать следующий код:
Dim clipboard As MSForms.DataObject Set clipboard = New MSForms.DataObject clipboard.SetText "Строковое значение" clipboard.PutInClipboard
Или для копирования текста из буфера обмена в строковую переменную:
Dim clipboard As MSForms.DataObject Dim strContents As String Set clipboard = New MSForms.DataObject clipboard.GetFromClipboard strContents = clipboard.GetText
Если эта ссылка не работает, найдите "объект буфера обмена для VBA" в разделе Центр разработки Office > Форумы Microsoft Office для разработчиков > Word для разработчиков.
Я создал два класса, запустил их тестирование, и они отлично работали в Outlook 2007 SP3 32-bit VBA на Windows 7 64-bit. Это, скорее всего, будет работать для доступа. Совет: Чтобы переименовать классы, выберите класс в окне "проекта" VBA, затем нажмите "Вид" в строке меню и выберите "окно свойств" (или просто нажмите F4).
С его классами это то, что требуется для копирования в/из буфера обмена:
Dim myClipboard As New vbaClipboard ' Создаем буфер обмена ' Копируем текст в буфер обмена как ClipboardFormat TEXT (CF_TEXT) myClipboard.SetClipboardText "Text to be placed on clipboard", "CF_TEXT" ' Получение текста буфера обмена в формате CF_TEXT (CF_TEXT = 1) mytxt = myClipboard.GetClipboardText(1)
Также предоставляет другие функции управления буфером обмена.
Он также преодолевает ограничение в 32 КБ для MSForms_DataObject.help setText - основную причину, по которой help setText часто не работает. Обратите внимание, что, к сожалению, мне не удалось найти ссылку на признание компанией Microsoft этого ограничения.
Специальная вставка в Эксель
Специальная вставка в Excel уже была частично описана в первом сообщении о копировании ячеек. Напомню, что если перед вставкой выполнить команду ленты Home - Clipboard - Paste (стрелка вниз на комбинированной кнопке), то откроются специальные опции Excel Paste. Эти опции позволяют копировать не всю ячейку, а, например, только данные, форматы или данные с числовыми форматами. Если в открывшемся окне выбрать пункт Paste Special, появятся опции Flexible Paste:
- Все - копирование всей ячейки (содержимое, форматы, проверка данных)
- Формулы - только копирование формул
- Значения - вставка результатов вычислений вместо формул
- Форматы - только форматирование копий
- Заметки - копировать только заметки из ячеек
- Условия значения - проверка значений копий
- С исходной темой - применить те же настройки темы, что и в исходной ячейке
- Без границы - копирует все, кроме границы ячейки
- Ширина столбца - установите ширину столбца, как в исходной ячейке
- Формулы и форматы чисел - копирование только формул и форматирования чисел
- Форматы значений и чисел - заменяет формулы результатами вычислений, применяет форматирование, как в источнике
- Объединить все условное форматирование - объединяет условное форматирование в исходных и вставленных ячейках
Управление буфером обмена Excel
Буфер обмена может содержать до 24 элементов. В Excel не имеет значения, что вы копируете: таблицу, столбец, строку, содержимое отдельной ячейки или просто текст - все это отдельные элементы, независимо от того, сколько информации они содержат. При копировании 25-го элемента - первый автоматически удаляется.
Вы можете управлять содержимым буфера. Если в нем есть ненужные элементы, удалите их. Щелкните правой кнопкой мыши на ненужном элементе и выберите "Удалить". Чтобы полностью очистить буфер обмена в Excel, нажмите кнопку "Очистить все" в боковом окне.
Информация о количестве элементов отображается в заголовке окна. Также имеется кнопка для закрытия бокового окна инструмента "X".
Если вас беспокоит боковое окно инструмента, но вы хотите продолжать заполнять его элементами, сделайте следующее
- закройте окно буфера обмена, нажав на крестик (x).
Режим "копировать-вставить" будет сохранен, и окно не будет нарушено; когда вы соберете все данные для заполнения буфера обмена, снова откройте его окно, чтобы выборочно вставить скопированные элементы.
Работать таким образом очень удобно, особенно когда нужно скопировать данные в другие листы Excel или другие программы MS Office (например, Word). В каждой программе, входящей в пакет MS Office, есть инструмент "Буфер обмена". Это означает, что в каждой из этих программ можно вызвать окно буфера обмена для выборочной вставки элементов. Этот инструмент позволяет эффективно организовать одновременную работу с несколькими документами.
Внимание. Перемещение данных выполняется так же, как и копирование. Вам нужно только нажать CTRL+C вместо CTRL+X и выбрать "вырезать" вместо "копировать".
Заключение
Ошибка открытия буфера обмена в Excel чаще всего вызывается параллельно работающими программами, использующими буфер обмена. Большинство проблем можно решить, изменив настройки этих программ. Если вы запретите им использовать буфер обмена, у вас не будет ошибок. Если проблему нельзя решить вручную, предпочтите восстановить систему до состояния, когда все было в порядке. Это быстро и надежно. В крайнем случае, переустановите операционную систему.