2017-06-23 8 views
0

メインファイルのコードの一部は、別のシートの特定のセルに式を転送または作成することです。別のGoogleシートを使用して数式を設定する方法

プロセス:
1.トリガーされると、現在のスプレッドシートのE1 [クライアント名]の値が取得されます。コピーする行の最大値を決定するためにデータの最後の行を取得します。



2.クライアント名に基づいてフォルダ名を検索します。フォルダの標準名は「NEW」 - [クライアント名]です。クライアントのワークシート:



3.次に、ファイルIDまたはそれは、ファイル名が時々[クライアント名]という名前の「クライアントのワークシート」を、含まれていますスプレッドシートのIDを取得します。



4.次に、ファイルを開き、

「クライアント・プロジェクト」シート名を選択し



5を、ここでIMPORTRANGE



とクエリのような式にセルA1を設定します

function transferTasks() { 
     var ss = SpreadsheetApp.getActiveSpreadsheet(); 
     var shtClient = ss.getSheetByName("SEO Deliverables Template"); 
     var cName = shtClient.getRange(1,5).getValue(); 
     var lastRow = shtClient.getLastRow(); 

    var folder = "NEW - " + cName; 
    var folderID = getFolderID(folder); //get the folder ID of the client 
    //the getfolderID function is successfull on getting the folder ID 

    //get the file ID of the client worksheet file 
     var cWorkSheet = DriveApp.getFolderById(folderID).searchFiles('title contains Client Worksheet'); 
     while (cWorkSheet.hasNext()) { //here is the error: invalid argument 
      var file = cWorkSheet.next(); 
      var fileID = file.getId(); 
      } 

    //transfer the data from SEO Deliverables Template to client folder template 
    var sourceFile = ss.getSheetByName("Sydney Office Projects"); 
    var shtTargetFile = DriveApp.getFileById(fileID); 
    var shtTarget = shtTargetFile.getSheetByName("Client Project Calendar"); 
    shtTarget.getRange(1,1).setValue="testing" 


} 



テストがあるべきである:私の既存のコードがありますここにコードで置き換えられます:

=IFERROR(query(IMPORTRANGE("123456789","'sheet'!A2:I"), " select * where Col6 = 'clientname' label Col1 'Assigned Date'",1),"") 

どのようなコードを使用するべきですか?私は今働いて

答えて

0

それ、実行するには、このためのもう一つは、setFormula ..です

function transferTasks() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var shtClient = ss.getSheetByName("SEO Deliverables Template"); 
    var shtClientID = shtClient.getID(); 
    var cName = shtClient.getRange(1,5).getValue(); 
    var lastRow = shtClient.getLastRow(); 

    var folder = "SEO - " + cName; 
    var folderID = getFolderID(folder); //get the folder ID of the client 
    var targetFolder = DriveApp.getFolderById(folderID); 

    var file = "Client Worksheet"; 
    var files = DriveApp.getFolderById(folderID).searchFiles("title contains '" + file+"'"); 
    while (files.hasNext()) { 
    var file = files.next(); 
    var fileID = file.getId(); 
    } 

    var shtTargetFile = SpreadsheetApp.openById(fileID); 
    var shtTarget = shtTargetFile.getSheetByName('Client Project Calendar'); 

    //var formula = '=IFERROR(QUERY(IMPORTRANGE('+ shtClientID + ',"\'sheet\'!A2:I"), " select * where Col6 = \'+ cName +\' label Col1 \'Assigned Date\'",1))' 
    shtTarget.getRange(1, 1).setValue("testing"); //replace with the code below 

shtTarget.getRange(1, 1).setFormula(formula); 
}  
1

setFormulaは今働いている:

var formula2 = "=IFERROR(QUERY(IMPORTRANGE(\""+ shtClientID + "\",\"'Sydney Office Projects\'!A2:I\"), \" select * where Col6 = \'"+ cName +"\' label Col1 \'Assigned Date\'\",1),\"\")"; 
    shtTarget.getRange(1, 1).setFormula(formula2); 
関連する問題