特定の番号が見つかるまで列をループするにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/4430266

質問

Google Docsスプレッドシート用の簡単なスクリプトを作成しようとしています。以下の2つのリンクは、スクリプトを書いているシートのスクリーンショットです。

http://i.stack.imgur.com/ugik7.png

http://i.stack.imgur.com/abknq.png

シート発注書では、列e ==「ストック」の場合、部品番号を見つけてシート「インベントリ」の数量を調整する必要があります。ベローは私がやろうとしていることの始まりです。誰かが私に手を差し伸べることができますか?

function updateInventoryFromPurchaseOrders() {
  var purchaseOrders = {}; // A mapping of partNumber => quantity.
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName('Purchase Orders');
  if (sheet) {
    // For each row, if column "E" == "stock" then set partNumber, quantity.
    purchaseOrders[partNumber] = quantity;
  }
  // Now purchaseOrders should look like {'SL249':5, 'ML50':1, 'MWF':1}

  sheet = ss.getSheetByName('Inventory');
  if (sheet) {
    // For each row, set quantity, partNumber.
    var purchased = purchaseOrders[partNumber];
    // Set column "A" value = quantity + purchased
  }
}

助けてくれてありがとう。

役に立ちましたか?

解決

JavaScriptはForeachを特徴としていません - 自分でメカニズムを実装するなど、これを回避する方法があります。

それがかつての修正であり、あなたがすぐに他の言語に移行する場合 - 私は次のことを提案します:

for( var CurrentRow=0; CurrentRow < DetermineMaxRows(); CurrentRow++ ) {
    if(isColumnEEqualStock()){
        //Things you want to do
    }
}

行や列を繰り返すための類似の何か...

あなたがあなた自身を実装したい場合は、 これ サイト。

JavaScriptの取り組みを拡大する予定がある場合は、考慮してください テキストをリンクします.

それ以外の場合は、JavaでApplettsを作成し、スクリプトの代わりにそれらを実装することを考えてください。

他のヒント

在庫のフラグと数量が同じシートにある場合、コンテンツ全体を同じ配列(使用している.getDatarange()、すべてをつかむだけで)を取得できます。その行の次のインデックスをつかみます。

var partNumbers = sheet.getDataRange().getValues(); 

for(num in partNumbers){
  if(partNumbers[num][4] == 'stock'){ //
    // Assuming quantity is in column F
    purchaseOrders[partNumber] = partNumbers[num][5];
  }
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top