特定の番号が見つかるまで列をループするにはどうすればよいですか?
-
09-10-2019 - |
質問
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];
}
}
所属していません StackOverflow