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,也不会存在这个问题。

一个玄学。

posted @ 2021-01-26 17:55  半个读书人  阅读(1823)  评论(0编辑  收藏  举报