2017-07-01 57 views
1

我正在着手編寫代碼以將數據導入到主工作表的活動工作表中。獨立腳本引用已知和新工作表

該腳本是獨立的 - 將是一個附加

活動工作表將是新的(變量ID)

主工作表已經已知的/靜態編號

我的解決辦法是使用記錄器記錄我的活動工作表的標識。我將時間信息從前面切下,只留下Id。 我已經運行到兩個問題:

  1. 定義切片記錄器輸出爲空白輸出變量的結果。

    function misc() { 
    var wb3 = SpreadsheetApp.getActiveSpreadsheet().getName(); 
    var wb2 = Logger.getLog().slice(35,999); 
    Logger.log(wb3); 
    Browser.msgBox(wb2); 
    Logger.clear() 
    } 
    

我的消息框,從確定按鈕出現空白旁白:我檢查這個。 使用Browser.msgBox(Logger.getLog()。slice(35,999))會生成帶有我的工作表ID的消息框,因此我可以使用它。只是不整潔。

function import() { 
var wb1 = SpreadsheetApp.getActiveSpreadsheet().getId(); 
Logger.log(wb1); 
var ssa = SpreadsheetApp.getActiveSpreadsheet().getSheetById('MASTER_SHEET_ID').getSheetByName("ToTo");    
ssa.getRange('A1:C6').copyTo(SpreadsheetApp.openById(Logger.getLog().slice(35,999)).getSheetByName("ToTo").getRange('A1:C6')) 
} 

不限:

使用切片記錄器輸出

我已經寫在下方的腳本從我的主人複製數據時

  • 爲值錯誤消息幫助表示讚賞。謝謝!

  • +0

    停止鏈接這麼多。 – Cooper

    回答

    0

    我認爲一個空白的對話框是正確的。嘗試再移動一行Logger.getLog()。

    function misc() { 
    var wb3 = SpreadsheetApp.getActiveSpreadsheet().getName(); 
    var wb2 = Logger.getLog().slice(35,999);//Nothing in logger yet 
    Logger.log(wb3);//Now there's something in logger 
    Browser.msgBox(wb2); 
    Logger.clear()//Now there's nothing in logger 
    } 
    

    我認爲這是不正確的鏈接,你不能通過ID獲取工作表,然後getSheetByName。

    var ssa = SpreadsheetApp.getActiveSpreadsheet().getSheetById('MASTER_SHEET_ID').getSheetByName("ToTo"); 
    

    我的建議是不要試圖過分看好鏈接。在調試代碼以訪問中間變量時,它實際上更有幫助。我的猜測是每個人都在調試代碼。

    +0

    完全正確的訂單,感謝庫珀。我目前仍然把這個整合在一起,並會在我有一個工作更乾淨的版本時進行更新。 – Flynn