2010-12-04 10 views
0

私のスクリプトは、Googleスプレッドシートのドキュメントここ にある数字の文字列を展開すると、私のスクリプトです:Javascript。

SS = SpreadsheetApp.getActiveSpreadsheet();私のスプレッドシートの列Cでは

function onOpen() { 
var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var menuEntries = [ {name: "10 Rows", functionName: "TenRows"}, 
         {name: "20 Rows", functionName: "TwentyRows"}, 
         {name: "30 Rows", functionName: "ThirtyRows"}, 
         {name: "40 Rows", functionName: "FortyRows"}, 
         {name: "50 Rows", functionName: "FiftyRows"}]      
    ss.addMenu("Insert Rows", menuEntries); 
} 


function TenRows() { 
    SpreadsheetApp.getActiveSheet().insertRowsBefore(2,10); 
} 

function TwentyRows() { 
    SpreadsheetApp.getActiveSheet().insertRowsBefore(2,20); 
} 

function ThirtyRows() { 
    SpreadsheetApp.getActiveSheet().insertRowsBefore(2,30); 
} 

function FortyRows() { 
    SpreadsheetApp.getActiveSheet().insertRowsBefore(2,40); 
} 

function FiftyRows() { 
    SpreadsheetApp.getActiveSheet().insertRowsBefore(2,50); 
} 

私はそれぞれの行を下る数字の文字列を持っています。この

C 
7317 
7316 
7315 
7314 
7313 

同様

私は行数を挿入するために私のスクリプトを実行すると、どのように私はそれはそれは自動的にこの昇順の番号及びCの欄に入力、それを続けて行うことができますか?

おかげ

答えて

1

私は明らかに全体を見ないであなたのコードを与えることはできませんが、私はそれを解決する方法についてのアドバイスを与えることができます:新しい行を挿入する前に

  1. を保存新しい行が挿入される行の番号を変数に代入します。 lastNumber = parseInt(insertRowColumnC.getValue())数に文字列を変換するためにparseIntを使用してください(!)
  2. 新しい行を挿入します今、あなたは最初のものでlastNumberをデクリメント各行の
  3. 上から下にすべて新しく挿入された行を反復処理します、そしてそれは、その行の列C

更新

に値だスプレッドシートを見た後、私はいくつかの分を費やしたいとワットまで来た書き込みこのコードは、

function onEdit(e) { 
    var sheet = e.source.getActiveSheet(); 
    var r = e.source.getActiveRange(); 
    if (r.getColumn() == 3 && r.getRow() == 2) { 
    var value = parseInt(r.getValue()); 
    if (!isNaN(value)) { 
     var next = getFirstRowNumber(sheet); 
     if (value > next) { 
     var count = value - next; 
     sheet.insertRowsAfter(2, count); 
     for(var i = 2; i < 2 + count; i++) { 
      sheet.getRange(i + 1, 3).setValue(value); 
      value--; 
     } 
     r.setValue(''); 

     } else { 
     r.setValue(''); 
     Browser.msgBox('You need to enter a greater ID.'); 
     } 
    } else if (r.getValue() !== '') { 
     r.setValue(''); 
     Browser.msgBox('You need to enter a valid ID.'); 
    } 
    } 
} 

あなたの質問は少し不明ですが、これはあなたが望むように動作します。

一部の人が2/Cで新しいIDを挿入すると、見つからないIDが新しいIDになり、3/CのIDが自動的に挿入されます。

+0

Ivo、とにかく私はあなたと文書を共有することができますか?私はこれをどのように実装するのか分からない。 – David

関連する問題