UiPath 执行VBA代码Selection.Copy复制不生效
Range("A1:B3").Select
Selection.Copy
这两句代码在excel中执行,可以正常把单元格内容拷贝至剪切板中。
但是在Excel Application Scope=>Invoke VBA中,
Range("A1:B3").Select生效;
Selection.Copy执行不生效……
VBA在执行Copy后,任何操作都可能会导致Copy的失效。
一般情况下,如果是从excel粘贴到excel,一般会直接在Copy 后面接Range。
但是,我的需求场景是粘贴到网页上。
经过排查,是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依旧未生效。
很奇怪……
另外,之前我在其他项目中,也未取消勾选AutoSave,也不会存在这个问题。
一个玄学。
![](https://img2020.cnblogs.com/blog/111642/202008/111642-20200815104231673-593067538.png)