2015-11-12 26 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