2010-12-13 6 views
0

Googleドキュメントスプレッドシート用の簡単なスクリプトを作成しようとしています。下の2つのリンクは、私がスクリプトを書いているシートのスクリーンショットです。特定の番号が見つかるまで、どのように列をループするのですか?

シート発注書で

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

http://i.stack.imgur.com/uGik7.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 
    } 
} 

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

+0

'.focusout()':http://api.jquery.com/focusout/ – sje397

答えて

0

javacriptにはforeachがありません - これを回避する方法はありますが、自分でメカニズムを実装する方法もあります。

それはかつての修正であり、あなたはすぐにいくつかの他の言語に移行する場合は - 私は、次のことをお勧め:行と列を反復処理のためのsimmilar

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

何かを...

あなたの場合独自のforeachを実装したいサイトthisを見てください。

あなたのJavascriptの努力を拡大する予定の場合は、link textとしてください。

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

+0

私はちょっと混乱しています。スクリプトにそのコードを書き込む方法がわかりません。 – David

0

あなたの国旗と数量が同じシートにある場合は、同じ配列内のコンテンツ全体を取得できます(すべてを取得するには、.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]; 
    } 
} 
関連する問題