google Apps Scriptでif文の中にswitchの入った関数を作りました。
関数を実行してみると、1度目には間違った結果を、2回目には期待する結果を出してきます。(2回目以降はなんどやっても期待通りの結果を返してくれます)
結果の例
【case0,0になるよう入力】→ ①case3,3の結果 ②case0,0の結果
【case3,1になるよう入力】→ ①case0,0の結果 ②case3,1の結果
【case4,4になるよう入力】→ ①case3,1の結果 ②case4,4の結果
【case1,1になるよう入力】→ ①case4,4の結果 ②case1,1の結果
前回の結果が残らないよう、結果を表示するセルは毎度消して試しています。
エラーなどは出てきません。
コードでおかしいところがあるのでしょうか。
1コード 2 //参照するスプレッドシートシート 3 var ss = SpreadsheetApp.openById('シートID'); 4 //参照するシート 5 var sheetA = ss.getSheetByName('sheet1'); 6 var sheetB = ss.getSheetByName('sheet2'); 7 var sheetC = ss.getSheetByName('sheet3'); 8 //参照するセル 9 var value1=sheetA.getRange("A2").getValue(); 10 var value2=sheetA.getRange("B2").getValue(); 11 var value3=sheetA.getRange("C2").getValue(); 12 13function myFunction() { 14 if ( value1 == 'A') { 15 16 switch (value2) { 17 case '0:0': 18 case '1:0': 19 case '1:1': 20 sheetB.getRange("A2").setValue(sheetC.getRange("C2").getValue()); 21 break; 22 case '2:0': 23 case '2:1': 24 case '2:2': 25 sheetB.getRange("A2").setValue(sheetC.getRange("C3").getValue()); 26 break; 27 case '3:0': 28 sheetB.getRange("A2").setValue(sheetC.getRange("C4").getValue()); 29 break; 30 case '3:1': 31 sheetB.getRange("A2").setValue(sheetC.getRange("C5").getValue()); 32 break; 33 case '3:2': 34 sheetB.getRange("A2").setValue(sheetC.getRange("C6").getValue()); 35 break; 36 case '3:3': 37 sheetB.getRange("A2").setValue(sheetC.getRange("C7").getValue()); 38 break; 39 case '3:4': 40 sheetB.getRange("A2").setValue(sheetC.getRange("C8").getValue()); 41 break; 42 case '4:3': 43 sheetB.getRange("A2").setValue(sheetC.getRange("C9").getValue()); 44 break; 45 case '4:4': 46 case '5:4': 47 sheetB.getRange("A2").setValue(sheetC.getRange("C10").getValue()); 48 break; 49 default: 50 sheetB.getRange("A2").setValue(sheetC.getRange("C11").getValue()); 51 } 52 } else { 53 switch (value2) { 54 case '0:0': 55 case '1:0': 56 case '1:1': 57 case '2:0': 58 case '2:2': 59 case '3:0': 60 sheetB.getRange("A2").setValue(sheetC.getRange("C12").getValue()); 61 break; 62 case '3:1': 63 case '3:2': 64 case '3:3': 65 case '4:3': 66 sheetB.getRange("A2").setValue(sheetC.getRange("C13").getValue()); 67 break; 68 default: 69 sheetB.getRange("A2").setValue(sheetC.getRange("C14").getValue()); 70 } 71 } 72 SpreadsheetApp.flush(); 73}
回答2件
あなたの回答
tips
プレビュー