Размеры вставляемой и выделенной областей не совпадают excel
В статье описываются возможности использования буфера обмена Windows и Microsoft Office, а также особенности копирования и вставки данных в Excel. Понимание и правильное использование этих операций позволяет существенно ускорить выполнение рутинных операций при обработке данных.
Буфер обмена операционной системы
В терминах информационных систем буфер обмена (англ. clipboard) - это общедоступная для разных приложений область оперативной памяти. Операционная система предоставляет низкоуровневый программный интерфейс для перемещение данных в и из буфера обмена по запросу пользователя. Корректное применение этого программного интерфейса является стандартом при разработке Windows-приложений. То есть, любая программа должна предоставлять пользователю возможности использования буфера обмена при использовании одних и тех же сочетаний клавиш или пунктов меню. Далее будем говорить о Windows, хотя, в принципе, описание принципа работы буфера обмена идентично для любой современной операционной системы персональных компьютеров или мобильных устройств.
Копирование и вставка являются стандартными операциями для всех Windows-приложений. Для этого зарезервированы универсальные комбинации горячих клавиш, доступные практически в любой программе:
Часто также упоминаются аналогичные по функциональности сочетания клавиш: Ctrl+Ins – скопировать, Shift+Ins – вставить, Shift+Del – вырезать. Однако, мы не рекомендуем использовать эти сочетания, так как некоторые приложения заменяют их стандартное поведение на другое. Например, нажатие Shift+Del в Проводнике Windows вместо ожидаемого вырезания перемещаемого файла вызовет его удаление в обход корзины. То есть вместо перемещения может случиться безвозвратная потеря данных.
Если вы предпочитаете использовать мышь вместо клавиатуры, то стандартные поля ввода Windows-приложений обычно поддерживают контекстное меню с операциями копирования, вырезания и вставки текста.
Скопированный текст или другой блок данных может быть вставлен в другое приложение, в зависимости от возможностей последнего. Например, скопированный в Блокноте текст не получится затем вставить в графический редактор Paint. Однако же, тот же текст, набранный в Word, успешно вставляется в Paint в виде точечного рисунка. Такая возможность реализуется на программном уровне за счет перемещения данных в буфер обмена в нескольких форматах одновременно. Если набрать в Word полужирным шрифтом слово Example, затем его скопировать, то в буфере обмена появится несколько блоков информации:
Example
Теперь, если попытаться вставить данные в Блокнот, то программа выберет из буфера обмена единственный доступный для себя вариант информации – текст без форматирования. Если то же самое сделать в Paint’е, то будет обработана последняя область – рисунок. Набор доступных форматов для копирования и вставки зависит от возможностей конкретной программы. Если приложение поддерживает несколько форматов информации (рисунки, текст, сложные объекты), то оно позволяет выбрать вариант вставки. Например, в Microsoft Word эта процедура реализована через пункт меню Специальная вставка:
Если использовать обычную вставку данных, то автоматически будет выбираться самый подходящий для этой программы формат. Excel также поддерживает операцию вставки данных в различных форматах по принципу Word, если информация в буфер обмена попала из другого приложения. Если же копирование диапазона ячеек было проведено в том же приложении, то специальная вставка заменяется внутренней операцией Excel (раздельная вставка значений, формул, форматов и пр.), при которой не задействуется буфер обмена операционной системы.
Некоторые другие приложения также реализуют собственные процедуры работы на основе операций копирования и вставки, не задействуя для этого буфер обмена. Так, например, в Проводнике операция «копировать» не перемещает весь файл в буфер обмена Windows. Вместо этого запоминается только ссылка на этот файл, которая будет обработана при выполнении операции вставки.
Буфер обмена Microsoft Office
Как уже отмечалось выше, за операции со стандартным буфером обмена отвечает операционная система. Одной из задач при этом является корректное использование оперативной памяти. Операционная система, в частности, заботится о своевременной очистке области буфера обмена. В текущей реализации стандартный буфер обмена Windows позволяет хранить только один блок скопированной информации. При вызове процедуры нового копирования этот блок предварительно очищается, а зарезервированная за ним область памяти становится доступной для использования в качестве буфера обмена.
Для улучшения возможностей работы с пользовательским интерфейсом в Microsoft Office, начиная с версии 2000 (9.0), реализован расширенный буфер обмена с возможностью одновременного хранения нескольких (до 24х) скопированных блоков информации. Пользователю предоставляется интерфейс выбора и вставки любого из этих блоков в любое открытое приложение Office (Excel, Word, PowerPoint, OneNote и др.). Возможно, более логично было бы реализовать подобную функциональность на уровне операционной системы (Windows), хотя это и потребует изменения стандартов для всех приложений. Сейчас получается, что множественный буфер обмена работает до тех пор, пока открыто хотя бы одно приложение Office. Если оно закрывается, то становится доступным только буфер обмена Windows с единственным блоком скопированной информации.
Интерфейс множественного буфера обмена в Office 2010 открывается и настраивается на ленте «Главная» в одноименном блоке (стрелка в нижнем правом углу).
Если говорить о полезности и удобстве работы с множественным буфером обмена, то здесь имеются различные мнения. Я лично никогда не использую эту функциональную возможность – проще еще раз скопировать. Но, скорее всего, это сила привычки.
Копирование и вставка в Excel
Как уже отмечалось, Excel полностью поддерживает буфер обмена Office, но, кроме того, в этой программе поддерживаются собственные операции копирования и вставки без использования буфера обмена.
Здесь следует заметить, что повторное использование объектов через копирование и вставку является одним из определяющих факторов ускорения обработки информации при использовании электронных таблиц Excel.
Что же в действительности происходит в Excel при нажатии кнопки «копировать» при выделении диапазона ячеек?
Во-первых, как и в прочих Windows-приложениях, набор информации помещается в буфер обмена операционной системы в нескольких форматах: простой текст, форматированный текст, точечный рисунок и др. Таким образом, вы, например, можете воспользоваться графическим редактором и вставить туда экранное отображение блока выделенных ячеек. Если вставить этот же блок обратно в Excel, то вставится рисунок:
Во-вторых (и это главное), при копировании Excel выполняет внутреннюю операцию для работы с ячейками электронной таблицы. По нажатию сочетания клавиш Ctrl+C, пункта контекстного меню либо кнопки копирования в памяти сохраняются ссылки на выделенные ячейки. Этих ячеек может быть огромное количество. Они могут располагаться одном прямоугольном диапазоне, либо в нескольких несвязанных диапазонах (для выделения таких диапазонов надо при выделении мышью удерживать клавишу Ctrl). Теоретически имеется возможность копирования ячеек на разных листах (несколько листов можно выделять также через удержание клавиши Ctrl на ярлыке листа), но эти ячейки должны располагаться по одному и тому же адресу, при этом последующая вставка возможна также только на этих же выделенных листах. На практике лучше отказаться от копирования-вставки на нескольких листах одновременно, так как эта операция не очень наглядна и часто приводит к потере данных.
Доступно также копирование ссылок между разными, но открытыми в одном приложении Excel, файлами. Типичной ситуацией, вызывающей непонимание со стороны пользователя, является обработка данных в нескольких одновременно открытых приложениях Excel. При попытке скопировать данные из одного файла в другой программа вставляет результат только в виде отформатированных значений без формул. Это не ошибка, просто несколько одновременно открытых программ Excel занимают различные области памяти и никаких ссылок между ними быть не может. При копировании и вставке в этом случае используется только буфер обмена Office. Для исправления ситуации откройте файлы в одном приложении Excel.
Еще раз обращаем внимание, что при запуске операции копирования, в память программы записываются не данные (текст, формулы, форматы), а только ссылки на адреса выделенных ячеек. Для наглядности интерфейс Excel обводит скопированные ячейки анимированной рамкой.
После копирования диапазонов становится доступной операция вставки. Перед этим необходимо выделить один или несколько диапазонов или ячеек для приема данных из скопированной области.
Вставка доступна до тех пор, пока пользователь не произвел действий, приводящих к изменению данных электронной таблицы. Можно выделять ячейки и диапазоны, перемещаться между листами и файлами. Также не отменяет область копирования сама операция вставки. Это позволяет копировать ячейки несколько раз подряд для разных диапазонов. Любые другие операции с пользовательским интерфейсом, например, ввод данных, группировка, сортировка, форматирование, приводят к сбросу скопированной ранее ссылки. Принудительно сбросить область копирования можно по нажатию клавиши Esc.
Кроме простой вставки, скопированный диапазон может быть добавлен в область листа с расширением границ влево или вниз через пункт контекстного меню «Вставить скопированные ячейки».
Если для вставки данных воспользоваться буфером обмена Office, то будут добавлены данные с потерей формул аналогично примеру с копированием между разными приложениями Excel.
По умолчанию при вызове операции вставки на выделенный диапазон будут распространены все атрибуты исходного диапазона, а именно: формула, формат, значение, примечание, условия. Иногда приводится сложное описание правил копирования формул, так как они вроде бы автоматически преобразуются при изменении адресов диапазона-приемника. На самом деле формулы копируются в формате R1C1 и при этом остаются неизменными (можете проверить, переключив вид листа Excel в R1C1). Отображение в привычном A1-формате просто преобразует формулу в новых координатах.
Операция «вырезания», в отличие от копирования, очищает исходный диапазон после проведения вставки. Если вставка не была выполнена, то никаких действий произведено не будет.
Специальная вставка
Другой важной особенностью копирования диапазонов Excel является раздельная вставка атрибутов скопированных диапазонов. В частности, можно вставить в новое место рабочего листа только комментарии из скопированного диапазона. Набор атрибутов, доступный для раздельного копирования, отображается в диалоге специальной вставки:
- значение
- формат
- формула
- примечание
- условия на значение (проверка данных)
В разных версиях Excel набор элементов специальной вставки немного отличается. Но независимо от этого можно воспользоваться повторной операцией вставки атрибута. Например, для вставки формул с примечаниями, но без форматов, надо скопировать один раз исходный диапазон, а затем последовательно выполнить две специальных вставки на одном и том же диапазоне: вставка только формул, затем вставка только примечаний.
Диалог специальной вставки содержит также блок переключателей, позволяющий производить математические операции над диапазоном данных: сложить, вычесть, умножить и разделить. Операция будет применена к диапазону, выделенному перед вставкой. А скопированные ячейки при этом будут содержать коэффициенты сложения, вычитания, умножения или деления. В большинстве случаев применяют единый коэффициент на весь диапазон. Например, можно скопировать число 10, затем выделить диапазон и выбрать специальную вставку с умножением – в результате все данные выделенного диапазона будут умножены на 10. Если в ячейках содержалась формула, то она будет преобразована по математическим правилам:
Еще одна возможность специальной вставки – это транспонирование диапазона. После выполнения этой операции результирующий диапазон будет повернут на 90 градусов – данные из строк попадут в столбцы и наоборот.
Настоятельно рекомендуем освоить и применять на практике специальную вставку – это незаменимая функция при разработке сложных финансовых моделей.
Как только была выполнена какая-то операция с данными электронной таблицы, либо в буфер обмена Office попала новая порция информации, воспользоваться ссылкой для вставки формул не получится. На картинках пример, показывающий такое поведение:
Причина, почему не удается вставка
На начальном этапе сразу рассмотрим, почему Эксель не вставляет данные. Этому может быть несколько объяснений:
- Информация, которую вы хотите копировать, не соответствуют формату ячеек.
- Столбцов не хватает для приятия информации, из-за чего данные не удается добавить.
- Область копирования и область вставки имеют разный размер / форму.
- Устаревшая версия ПО.
- Неправильные надстройки.
- Повреждение программного обеспечения Майкросотф Офис.
- Некорректная учетная запись DCOM.
- Загрязнение временными файлами.
Это главные причины, почему ничего не копируется в Эксель и не удается добавить новую информацию. В зависимости от ситуации принимается решение о действиях, направленных на устранение ошибки.
Что делать
Теперь подробно разберемся с шагами, позволяющими решить возникшую проблему. Если приложению Microsoft Excel не удается вставить данные, используйте одну из следующих рекомендаций.
Измените формат ячейки
Если в Эксель не получается копировать сведения, причиной может быть несоответствие формату ячеек. Для решения проблемы нужно убедиться, что этот параметр соответствует формату данных, внесение которых планируется в ячейку. Для изменения формата сделайте следующее:
- Жмите на заголовок столбца А, В, С и других (если вы хотите внести изменения).
- Зайдите во вкладку «Главная» и жмите меню «Формат» «Общий» в числовом виде.
- Кликните на формат ячейки, который соответствует добавляемым данным.
Вставьте другие столбцы
В ситуации, когда Эксель не удается вставить данные, причиной может быть недостаток столбцов. Для решения проблемы вставьте дополнительные столбцы и попробуйте еще раз удается копировать информацию в приложение Excel или нет.
Чтобы вставить дополнительные столбцы, сделайте следующее:
- Жмите на заголовок столбца (А, В и т. д) справа от места, куда нужно вставить новые данные.
- На вкладке «Главная» жмите «Вставить». Первоначальный столбец смещается в правую сторону и добавляется новый элемент.
- Делайте шаг 2, пока не появится нужное число столбцов.
Проверьте соответствие области копирования / вставки
Если в приложении Эксель не вставляется скопированный текст, убедитесь в соответствии областей копирования / вставки по параметрам размера и фигуры. Для решения проблемы перед вставкой выберите левую ячейку, а весь диапазон. Чтобы вставить данные в Excel, сделайте следующее:
- Жмите на ячейку, куда вы хотите вставить данные и не удается это сделать.
- На вкладке «Главная» выберите «Вставить».
Вы можете выбрать диапазон ячеек такой же, как число строк / столбцов в качестве данных, которые нужно вставить. После этого на вкладке «Главная» выберите пункт «Вставить».
Обновите программу Excel
В ситуации, когда приложение Эксель не копирует данные, причиной может быть применение устаревшей версии. Для решения проблемы нужно установить имеющиеся обновления через параметры Виндовс и раздел «Обновления и безопасность». Здесь войдите в дополнительные параметры и убедитесь в наличии отметки «При обновлении Windows предоставить обновления для других …». При появлении новой версии Виндовс автоматически выполнить установку обновленного приложения Excel, и имеющиеся ошибки будут исправлены. При этом убедитесь, удается после этого копировать что-либо или нет.
Отключите надстройки в безопасном режиме
Если в Microsoft Excel не удается вставить данные, попробуйте войти в приложение в безопасном режиме. Его суть подразумевает вход в программу с минимальными настройками. Для этого зажмите кнопку Ctrl и запустите программу. Далее сделайте следующее:
- Зайдите в «Файл» и «Параметры».
- Войдите в режим «Надстройки».
- Посмотрите, какие из них является активными.
- По очереди выключайте их.
После этого попробуйте вставить данные в приложение Excel. Если это не удается сделать, воспользуйтесь другим вариантом.
Восстановите приложение
Причиной рассматриваемой ошибки может быть нарушение офисного пакета и сбой его работы. Для исправления проблемы попробуйте восстановить приложение. Для этого вызовите окно «Выполнить» (Win+R) и введите команду appwiz.cpl . В появившемся разделе «Программы и компоненты» выберите свой пакет и жмите «Изменить», а далее — «Восстановить». При этом начинается процесс восстановления программы, в том числе пакета Excel. На все манипуляции может уйти 5-10 минут.
Проверьте учетную запись DCOM
В случае, когда в Экселе не вставляется скопированный текст, проверьте DCOM. Это программная конструкция, позволяющая ПК / ноутбуку запускать софт на другом устройстве. При этом приложение Excel как бы запускается локально. Если же не удается вставить данные, возможно, вы используете неправильный режим.
Для решения вопроса сделайте следующее:
- Жмите Win+R.
- Введите dcomcnfg.
- Откройте «Службы компонентов», а далее «Компьютеры» и «Приложения СОМ+.
- Перейдите в Настройки DCOM и Microsoft Excel Application.
- Жмите правой кнопкой мышки и войдите в свойства.
- Зайдите в раздел «Удостоверение» и убедитесь, что у вас установлен пункт «Запускающий пользователь».
После этого проверьте, удается ли приложению Excel внедрить данные. В большинстве случаев проблема исчезает.
Очистите временные файлы
Для устранения проблем с копированием в Excel почистите временные данные из профиля. Для этого войдите по ссылке C:Usersимя пользователяAppDataRoamingMicrosoftExcel в скрытых папках Виндовс. Выберите своего пользователя, найдите XLSTART и попробуйте ее удалить. После этого запустите приложение и проверьте эффект.
Читайте также: