知识库 KB0160

复制选择的多个非相邻单元格失败

问题

无法将选择的多个非相邻单元格复制到 think-cell 数据表中。通过诸如按下 Ctrl 键,然后单击单元格的方式选择多个非相邻单元格后,若随后将这些单元格复制/粘贴到 think-cell 的内部数据表中,会同时粘贴各单元格之间未选择的单元格。

复制的多个单元格和粘贴的多个单元格的视图.
  • 源表格:已复制单元格 A1、A3、A5 → 目标表格:已粘贴 A1:A5

说明

这是 Excel 的设计限制。think-cell 的内部数据表基于 Excel,但却是单独的 Excel 进程。将非相邻单元格复制/粘贴到单独的 Excel 进程时,在不使用 think-cell 的情况下也可以重现该问题。

在不使用 think-cell 的情况下重现:

  1. 打开 Excel,将一些数字输入到单元格 A1 到 A5 中。
  2. 按住 Ctrl 键,同时单击 A1、A3 和 A5 单元格以选择这些单元格(如以上屏幕截图中所示)。复制选择对象。
  3. 右键单击任务栏上的 Excel 符号,然后单击 Microsoft Excel 20... 以启动单独的 Excel 进程 如何启动单独的 Excel 进程. 在 Excel 2013 和更新版本中,同时按下 ALT 键以启动单独的进程。对于消息您是否要启动新的 Excel 实例?,单击以确认。
  4. 粘贴(例如,通过按 Ctrl + V 执行)。

结果:同时粘贴了未选中的单元格 A2 和 A4。

我们已向 Microsoft Office 支持提出了此问题,案例编号为 112021442496011。Microsoft Office 支持称,此行为迄今并未记录在案,它是“设计有意如此”。

“此行为是设计有意如此。

使用剪贴板进行复制和粘贴时,您所用功能的设计目的是在所有 Office 应用程序中都有效。有鉴于此,剪贴板会使用 HTML 代码来存储数据,然后粘贴数据。HTML 代码仅限于选择范围,您会获取范围中的所有数据(包括未选择的单元格)。它会以 HTML 代码创建表格,并使用该表格执行粘贴操作。这样,剪贴板就可以和其他 Office 应用程序(例如,Word、Power Point)以及此工作簿外的其他 Excel 实例分享 Excel 中的数据。

若使用 Ctrl-C,然后使用 Ctrl-V(而不是使用剪贴板),则使用的是内部 Excel 单一实例复制功能,Excel 由此可以只复制所选的单元格。如此可执行您希望的行为。由于剪贴板与所有 Office 应用程序共享数据,因此存在限制。剪贴板的限制是有意如此,因为存在简单的复制和粘贴所需的大量数据。大量数据的复制操作会使系统无力承担,导致性能大幅减慢。HTML 复制是分离版的内部复制,因此存在差异和限制。” (Microsoft Office 支持)

分享