База знаний KB0160

Копирование множественной выборки несмежных ячеек завершается ошибкой

Проблема

Не работает копирование множественной выборки несмежных ячеек в набор данных think-cell. При множественной выборке нескольких несмежных ячеек, например, если при зажатой клавише Ctrl нажать на несколько ячеек, затем скопировать и вставить эти ячейки во внутреннюю таблицу think-cell, то будут вставлены и ячейки, расположенные между выбранными ячейками.

Скопированная и вставленная множественная выборка.
  • Исходный лист: Ячейки A1, A3, A5 скопированы → Конечный лист: Вставлены ячейки A1:A5

Пояснение

Это проектное ограничение Excel. Внутренний набор данных think-cell создается на основе Excel, но является отдельным процессом Excel. Проблему можно воспроизвести без надстройки think-cell при копировании и вставке несмежных ячеек в отдельный процесс Excel.

Воспроизведение ошибки без think-cell:

  1. Откройте Excel и введите любые числа в ячейки с A1 по A5.
  2. Выберите ячейки A1, A3 и A5, удерживая нажатой клавишу CTRL и нажав на эти ячейки (как на приведенном выше снимке экрана). Скопируйте выборку.
  3. Запустите отдельный процесс Excel, нажав правой кнопкой мыши на символ Excel в панели задач и выбрав Microsoft Excel 20… Запуск отдельного процесса Excel. в Excel 2013 и более поздних версиях, удерживайте при этом нажатой клавишей ALT, чтобы запустить отдельный процесс. В появившемся окне Вы хотите запустить новый экземпляр Excel? выберите вариант Да.
  4. Вставьте данные (например, нажав Ctrl + V).

Результат: Будут также вставлены ячейки A2 и A4, которые вы не выбирали.

Мы отправили сообщение о данной проблеме в службу поддержку Microsoft Office, это заявка 112021442496011. Служба поддержки Microsoft Office сообщила, что такое поведение не отражено в документации, но ошибки нет и компонент работает «по умолчанию».

“This behavior is by design.

When you use the clipboard for copy and paste, you are using a feature that is designed to work across all office applications. Since this is the case, the clipboard uses HTML code for storing and then pasting data. The HTML code is limited to a range select and you get all the data in the range including the cells you did not select. It is creating a table in HTML code and uses this table for the paste action. This allows the clipboard to share data from Excel to other office applications such as Word, Power Point, and other instances of Excel outside this workbook.

When you use Ctrl-C and then follow it up with Ctrl-V instead of using the clipboard you are using an internal Excel single instance copy feature that allows Excel to copy only the selected cells. This gives you the desired behavior. The clipboard has limits due to the fact that it shares with all office applications. The limit to the clip board was planned due to the huge amount of data that would be required to do a simple copy and paste. Large copy actions would overwhelm the system and cause huge slowdowns in performance. The HTML copy is a stripped down version of the internal copy and therefore there are differences and limits.” (Microsoft Office Support)

Поделиться