我對Google Apps腳本非常陌生,而且在嘗試實現我的目標時遇到問題。如何複製用戶選擇的目標電子表格中的工作表並複製數據
我有一個谷歌表工作簿,可以讓用戶:
- 從下拉菜單中選擇一個名稱下(每個名字都有一個唯一/個人 谷歌工作簿與之相關聯的URL)
- 類型的所需的電子表格名稱
- 按下「推板」按鈕
一旦用戶按下按鈕,我試圖做到以下幾點:
- 重複片材「模板 - 不要修改」已經存在於目標工作簿(與所選擇的名稱相關聯的URL)
- 重命名複製片到所需的電子表格名稱
- 複製範圍A7 :D150從原始工作簿上的工作表「Tracker」到範圍A7:目標工作簿上D150新創建工作表
原始工作表設置爲讓用戶在運行腳本之前授權工作簿連接。
這裏是我的代碼:
function cloneGoogleSheet() {
var sheet = SpreadsheetApp.getActiveSheet();
var name = sheet.getRange("B10").getValue();
var url = sheet.getRange("f5").getValue();
var tss = SpreadsheetApp.openByUrl(url);
tss.setActiveSheet(tss.getSheetByName('Template - Do Not Modify'));
tss.duplicateActiveSheet();
var activesheet = tss.getActiveSheet();
activesheet.setName(name);
}
我的問題是:
它似乎並不像利用ActiveSheets是做這一切的一種安全的方式,並有一個更好的辦法。
當試圖使用URL變量(該腳本運行正常,具有硬編碼的URL值)時,我得到一個無效的參數:URL錯誤。單元格F5會根據從下拉列表中選擇的名稱更新爲新的URL,並使用查找引用具有唯一URL的名稱:
= lookup(B4, {P71,P72,P73,P74,P75, P76,P77},{ Q71,Q72,Q73,Q74,Q75,Q76,Q77} )
- 鑑於這一事實,我使用所有這些ActiveSheet變量,我不知道如何找回我的原始工作表複製範圍。
我非常感謝有人向我展示了做到這一點的正確方法。謝謝!