2015-11-12 25 views
0

当我使用copyTo来复制整个工作表时,图纸被复制,但我不想复制整个工作表,所以我尝试在范围上使用copyTo,但图纸不会被复制。任何人都知道这是预期的行为还是错误?例如,如果图纸是A4 ...copyTo范围不复制图纸?

function test() { 

var ss = SpreadsheetApp.getActiveSpreadsheet(); 
var test1 = ss.getSheetByName("test1"); 
var test2 = ss.getSheetByName("test2"); 

// this does not copy drawing to sheet test2 

var rangeToCopy = test1.getRange(1,1,5,1); 
rangeToCopy.copyTo(test2.getRange(1,1)); 

// this copies drawing to new sheet Copy of test1 

test1.copyTo(ss); 

} 

我知道有两个CopyTo从的,一个表和一个范围,只是本来期望他们都应该复制图纸。

回答

0

没有,它不复制图纸。其中很大一部分是图纸不坐在特定的单元格或范围上。

可以通过插入绘图上述行证实了这一点。有时谷歌会将图形向下移动,有时并不是,所以它不会绑定到特定的行,至少不是严格的。

您还可以确认使用Web界面手动复制范围也不会复制图纸。

一个解决方案是绘图转换为图像和主机的地方它(如谷歌的网站柜公共访问),然后使用单元格公式`= IMAGE(“http://path.to.image.png”)”,这将会被复制。

另一种方式如果必须使用的图纸,是将整个工作表复制到一个新的工作表,然后手动复制你没有想从你的目的地片覆盖范围,然后删除原始目标表,并重新命名带目的地名称的新工作表。

+0

感谢您的回复,图中都含有这样使用分配给脚本=图像不会在这种情况下工作。至于另一个解决方法,当我删除原始工作表时,我似乎记得将在其他工作表中将公式引用到它,并用公式中的#Ref替换已删除的工作表名称,不是吗? – MorningSleeper

+0

天哪,我还没有看过使用= IMAGE这么久,我没有意识到你现在可以为它指定脚本,以及你指出的 - 或者总是可以和我只是忽略它。我会试一试,谢谢。 – MorningSleeper

+0

唉,我会混淆插入图像,您可以分配脚本,但像图纸不会被复制,并使用=图像,你不能分配脚本。 所以我回到你的另一个复制和删除表的解决方案。我想我可以写一个脚本来执行搜索并替换#Ref,但是由于大量的表单和单元格需要迭代,看起来像是过度杀伤。 – MorningSleeper