我在Microsoft Excel for Mac 16.11中遇到了一个奇怪的问题。对于Windows版本也同样如此。如果我复制一些单元格并使用VBA来保护或取消保护工作表,则剪贴板会清除。这是我用于保护的代码 - unprotect:
Sheet1.Unprotect( “ABC”)
Sheet1.Protect( “ABC”)
但如果我复制一些细胞并使用UI,即评论 - >保护,取消保护,剪贴板被保留,我甚至可以看到复制的单元格上的点缀绿色边框是完整的,与前一种情况不同。
我可以使用MSForms.DataObject在调用protect / unprotect之前手动保存剪贴板文本(它可以工作),并在调用后恢复它,但是点缀绿色的边框消失,这可能会导致用户混淆。
有没有办法在VBA中模仿用户界面在保护/取消保护时的作用?
答案 0 :(得分:0)
我在研究其他东西时遇到了一些问题,我认为这可能是对此的答案,请参见http://www.excel-first.com/autoexpand-excel-tables-on-protected-sheets/
简而言之,运行宏/代码似乎是一个普遍的问题,可以使用以下方法阻止Excel通过先打开剪贴板(然后再关闭它)来清除剪贴板:
OpenClipboard 0
~the action that would make Excel clear the clipboard~
CloseClipboard