背景
我有一个 Excel 2007 表单,用户在其中将一些数据输入到文本框中,如果他们单击“确定”命令按钮,则会根据该文本运行一个宏。但是,如果他们从其他地方(例如Ctrl + C
)复制字符串,然后第一次粘贴并按 OK,则复制缓冲区似乎已被清除;如果他们再次尝试在任何地方再次粘贴,则不会发生任何事情。但是,如果他们单击“取消”命令按钮,他们将保留第二次以上的粘贴功能。单击 OK 后运行的宏非常简单:它创建一个新工作表,从数据库中插入一些数据,并对它执行一些循环检查,所以我认为任何 VBA 方法都不会清除复制缓冲区. 我能想到的唯一一件事是.Select
它在某一时刻使用然后设置一个.PrintArea
,但这不应该有任何复制/粘贴效果,因为它不会复制/粘贴选定的数据,因为所有这些都是通过Cells(row, col) = Cells(row, col)
语法完成的。此外,当我打开剪贴板窗格时,它不会擦除任何内容;条目保留在那里。
问题
Excel 2007 在执行链接到命令按钮/文本框的宏后吃掉复制缓冲区是否只是一个错误,或者是否有可能导致问题的原因?如果它是一个错误,是否有一种方法可以放回Ctrl + C
用户最初输入的字符串?