0

(1)スプレッドシート(​​ターゲットファイル)の名前を変更し、別のスプレッドシート(​​ソースファイル)に含まれている値について、リストされているすべてのスプレッドシートの名前が変更されて入力されるまで、2行目以降のループスルー。Googleスプレッドシート(​​ファイル)の名前を変更し、その内容をシートの値で埋め込む方法

ターゲットファイルの名前を変更するために必要なすべての値は、セル範囲D2:Dにあります。ターゲット・ファイルを取り込むために必要な

すべての値がセル範囲A2内にある:G:対象ファイルのD

すべてのIDは、セル範囲G2です。

2行目と最後のデータを含む行の間にブランク行はなく、この範囲のデータを持つすべての行が使用されます。各列(A、B、C、D、G)は、同じ数のデータを含む行を持ちます。

使用するエントリを含む行数の値は、セル範囲E1内にあります(この機能では使用されていない場合)。

function rnmCpyRngTo() { 
    //rename target spreadsheet and populate range 
    //in target sheet from values in source spreadsheet 
    //get source sheet in source spreadsheet 
    var ssss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("CopyToWrdLists"); 
    //get source cell range containing value of name to be given to target spreadsheet    
    var scrvn = ssss.getRange("D2").getValue(); 
    //get source cell range containing values to copy to target sheet cell range 
    var scrvr = ssss.getRange("A2:D2").getValues(); 
    //get source cell range containing values of target spreadsheet ID 
    var scrvid = ssss.getRange("G2").getValue(); 
    //get target spreadsheet ID 
    var tssid = DriveApp.getFileById(scrvid); 
    //get target sheet 
    var tss = SpreadsheetApp.openById(scrvid).getSheetByName("Wordlist"); 
    //rename target spreadsheet 
    tssid.setName(scrvn); 
    //copy values to target sheet cell range 
    tss.getRange(1, 1, scrvr.length, scrvr[0].length).setValues(scrvr); 
} 

質問15616530は、望ましい結果に近いように見えたが、合わせてそれを変更することができませんでした。ヘルプは非常に高く評価されます。

を追加しました:リンクを誰でも編集できるように

 //get source cell range containing values of target spreadsheet ID 
    var scrvid = ssss.getRange("G2").getValues(); 

ソースシートはhereが共有されています。

あなたがGoogleにログインしたとすると、このfolderは共有されています。

  1. "Target_Spreadsheet"フォルダにははありません。です。
  2. 文書を作成するためのユーザメニュー「ワードリスト」からスクリプトを実行してください。
  3. 機能を実行して最初のファイルの名前を変更して入力するユーザメニューから機能を実行します。

必要に応じて繰り返します。それが私の目的です。

ありがとうございました。

+0

このスクリプトで使用されているスプレッドシートまたはその代表的なデータセットを共有すると便利です –

+0

スプレッドシートへのリンクが提供され、コードには行が残っています。 –

+0

var scrvid = ssss.getRange( "G2")。getValues();単一の値しか含まれていない場合でも、値の2次元配列を返します。私は 's'を取り除くことによってそれを変えるだろう。 var scrvid = ssss.getRange( "G2")。getValue();これはG2の単一の値を返します – ScampMichael

答えて

0

これは単なるループのためにあなたのコードを入れて、トリックを行う必要があります。

function rnmCpyRngTo() { 
    //rename target spreadsheet and populate range 
    //in target sheet from values in source spreadsheet 
    //get source sheet in source spreadsheet 
    var ssss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("CopyToWrdLists"); 
    //get source cell range containing value of name to be given to target spreadsheet 
    var data = ssss.getDataRange().getValues()  // All the data in sheet, since there not empty rows. 
    Logger.log(data) 
    var dataLength = data[0][4]      // Get number of rows from cell E1, can use data.length instead 
    for (var i = 1; i <= dataLength ; i++){   // If you rather use data.length change the condition to i < data.length 
     var scrvn = data[i][3]     // Get Rename value 
     var scrvr = [] 
     scrvr[0] = data[i].slice(0, 4)   // Get Copy Values 
     var scrvid = data[i][6]     // Get of SpdSheet 
     var tss = SpreadsheetApp.openById(scrvid) // Get Spreadsheet 
     tss.rename(scrvn)       // Rename Spreadsheet 
     Logger.log(scrvr) 
     tss.getSheetByName("Wordlist").getRange(1, 1, scrvr.length,scrvr[0].length).setValues(scrvr) // Set Copy Values to the sheet 

    } 

} 

はそれが役に立てば幸い!

+0

うわー。どうもありがとうございました。魅力のように動作します。代表点の数のために私の上の投票は表示されません。うまくいけば、他の誰かがこれが私のように役に立つと思うでしょう。 –

関連する問題