Range("A1:B3").Select
Selection.Copy
这两句代码在excel中执行,可以正常把单元格内容拷贝至剪切板中。
但是在Excel Application Scope=>Invoke VBA中,
Range("A1:B3").Select生效;
Selection.Copy执行不生效……
经过排查,是Excel Application Scope的AutoSave属性导致。
Excel Application Scope会默认选中AutoSave,取消AutoSave勾选,即可让Selection.Copy生效。
在Excel中,ctrl+c复制了单元格后,ctrl+s保存excel,也会导致之前的复制内容失效。
更多的尝试和探究:
默认AutoSave勾选。
在Invoke VBA后,放置一个log message,并在该活动上,F9设置断点,重新调试,
发现执行到log message 停住时,Excel Application Scope并未触发AutoSave。Excel Application Scope会在Scope结束时触发。
这里未触发保存,但是Selection.Copy依旧未生效。
很奇怪……