【发布时间】:2014-02-22 05:38:41
【问题描述】:
我有一个包含许多工作表的 Excel 工作簿。大多数工作表在 Worksheet_Activate() 子例程中都有一些代码。由于某种原因,此代码会导致剪贴板的内容丢失 - 非常烦人,因为电子表格用户无法在工作表之间复制和粘贴。
为了解决这个问题,我在 Worksheet_Activate 代码的开头添加了以下几行:
Dim dClipBoard As MsForms.DataObject
On Error Resume Next
Set dClipBoard = New MsForms.DataObject
dClipBoard.GetFromClipboard
以及在 Worksheet_Activate 代码退出之前的以下几行:
On Error Resume Next
dClipBoard.PutInClipboard
不幸的是,它不起作用。当我从一张纸移动到另一张纸时,我的剪贴板仍然丢失。
【问题讨论】:
-
这是一个长期存在的问题,似乎没有解决方案。解决方法是建议您的用户在复制时打开“Office 剪贴板任务窗格”:事件宏运行时不会擦除该剪贴板。