Googleスクリプトでifステートメントがtrueの場合、Elseステートメントは引き続き実行されます

エミリーホロックス

データのセットを持つ名前を持つ関数があり、この名前が名前のリストと比較されます。その名前がす​​でに名前のリストにある場合、その名前に関連付けられているデータが古いデータを置き換えます。名前が名前のリストにない名前である場合、名前と関連情報がリストの一番下に追加されます。

何らかの理由で、すでにリストにある名前でコードを実行すると、元のデータが置き換えられ、名前とデータがリストの一番下に追加されます。新しい個人を追加しながら、人を繰り返すことは避けたいです。

  var app = SpreadsheetApp;
  var activeSheet = app.getActiveSpreadsheet();
  var lookup = app.getActiveSpreadsheet().getSheetByName("Lookup");
  var issued = app.getActiveSpreadsheet().getSheetByName("Issued");
  var name1 = lookup.getRange(12,3).getValue();
  var info = lookup.getRange(16,3,1,12).getValues();
  
for (var j=1;j<105;j++){
    var issuedOfficers = issued.getRange(j,11).getValue();
//if the officers name is already recorded in issued the system will replace the current data with updated data
    if (issuedOfficers === name1){
      issued.getRange(j,1,1,12).setValues(info);
    } else {
      var lastrow = issued.getLastRow();
      issued.getRange(lastrow+1,1,1,12).setValues(info);
      break;
    }
}
}```
タナイケ

この変更はどうですか?

変更点:

スクリプトでは、

  • jis1issuedOfficers === name1isの場合trueissued.getRange(j,1,1,12).setValues(info)が実行されます。そして、jis2issuedOfficers === name1isのfalse場合、issued.getRange(lastrow+1,1,1,12).setValues(info)が実行されます。そして、forループが終了します。
  • jis1issuedOfficers === name1isの場合falseissued.getRange(lastrow+1,1,1,12).setValues(info)が実行されます。そして、forループが終了します。

これがあなたの問題の理由だと思います。この問題を回避するために、次の変更はどうですか?

変更されたスクリプト:

から:
for (var j=1;j<105;j++){
    var issuedOfficers = issued.getRange(j,11).getValue();
//if the officers name is already recorded in issued the system will replace the current data with updated data
    if (issuedOfficers === name1){
      issued.getRange(j,1,1,12).setValues(info);
    } else {
      var lastrow = issued.getLastRow();
      issued.getRange(lastrow+1,1,1,12).setValues(info);
      break;
    }
}
に:
var names = issued.getRange(1, 11, 105, 1).getValues().flat();
var index = names.indexOf(name1);
if (index > -1) {
  issued.getRange(index + 1,1,1,12).setValues(info);
} else {
  issued.appendRow(info[0]);
}
  • この変更では、最初に、のシートから値が取得され、値に含まれているissuedかどうかname1チェックされます。これにより、行が更新されるか、値が追加されます。

注意:

  • このスクリプトは、V8を有効にして使用してください。

参照:

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

「ifステートメント」が満たされない場合でも、「ifステートメント」内の関数は引き続き実行されます。

分類Dev

/ elseステートメントがAndroidアプリで機能しない場合(elseステートメントは常に実行されます)

分類Dev

C whileループは、ステートメントがtrueの場合にのみ実行されますか?

分類Dev

Elseステートメントは、Ifステートメントの条件が有効な場合でも実行されます

分類Dev

else条件が通過した場合でもelseステートメントは実行されます

分類Dev

ここで、素数以外の場合、内側のループのbreakステートメントは実行されますが、外側のループのelseステートメントは実行されません。なぜですか。

分類Dev

cでifステートメントが機能しない場合、ifステートメント内のセクションは常に実行されます

分類Dev

パブリックコンテキストメニューのテストは引き続き実行できますか?

分類Dev

trueの場合でも、elseステートメントがスキップされる場合

分類Dev

JavaScript-ifステートメントがtrueの場合、コードは実行されませんか?

分類Dev

私のケース1がJavaで実行される場合、ifステートメントを書きたい

分類Dev

TestNGリスナーがオンの場合、catchステートメントは実行されません

分類Dev

JavaのIfステートメントとelseステートメントの両方が実行されます

分類Dev

Python 3: `else`ステートメントは` if`ステートメントがtrueであっても実行されます

分類Dev

catchステートメント内にelseステートメントがある場合はロジックコードを使用できますか?

分類Dev

複数のifステートメント-「else」は引き続き使用できますか?

分類Dev

条件が満たされない場合、コードはIFステートメントで実行されます

分類Dev

ステートメントが続行されない場合

分類Dev

tkinterでボタンの前のステートメントがクリックされた場合にPythonが実行されるのはなぜですか

分類Dev

サーバーをリモートでテストし続けるシェルスクリプトを書き込もうとしていますが、ログアウトするとelseステートメントに分類され続けます

分類Dev

ステートメントが真の場合でも、他のステートメントが実行されていますか?

分類Dev

Else ステートメントが実行されるべきでない場所で実行されています

分類Dev

elseステートメントはifelseステートメントでは実行されません

分類Dev

elseステートメントがcinステートメントで機能する場合、どうすればこれを作成できますか?

分類Dev

falseの場合でもKotlinifステートメントが実行される

分類Dev

ifステートメントの場合、それはtrueですが、再びループします

分類Dev

「if」ステートメントの場合、条件は実行されません

分類Dev

右クリックのコンテキストメニューは、WindowsのGoogleバックアップと同期で引き続き使用できますか?

分類Dev

Roblox Lua ifステートメントは、値が真でない場合でも実行されます

Related 関連記事

  1. 1

    「ifステートメント」が満たされない場合でも、「ifステートメント」内の関数は引き続き実行されます。

  2. 2

    / elseステートメントがAndroidアプリで機能しない場合(elseステートメントは常に実行されます)

  3. 3

    C whileループは、ステートメントがtrueの場合にのみ実行されますか?

  4. 4

    Elseステートメントは、Ifステートメントの条件が有効な場合でも実行されます

  5. 5

    else条件が通過した場合でもelseステートメントは実行されます

  6. 6

    ここで、素数以外の場合、内側のループのbreakステートメントは実行されますが、外側のループのelseステートメントは実行されません。なぜですか。

  7. 7

    cでifステートメントが機能しない場合、ifステートメント内のセクションは常に実行されます

  8. 8

    パブリックコンテキストメニューのテストは引き続き実行できますか?

  9. 9

    trueの場合でも、elseステートメントがスキップされる場合

  10. 10

    JavaScript-ifステートメントがtrueの場合、コードは実行されませんか?

  11. 11

    私のケース1がJavaで実行される場合、ifステートメントを書きたい

  12. 12

    TestNGリスナーがオンの場合、catchステートメントは実行されません

  13. 13

    JavaのIfステートメントとelseステートメントの両方が実行されます

  14. 14

    Python 3: `else`ステートメントは` if`ステートメントがtrueであっても実行されます

  15. 15

    catchステートメント内にelseステートメントがある場合はロジックコードを使用できますか?

  16. 16

    複数のifステートメント-「else」は引き続き使用できますか?

  17. 17

    条件が満たされない場合、コードはIFステートメントで実行されます

  18. 18

    ステートメントが続行されない場合

  19. 19

    tkinterでボタンの前のステートメントがクリックされた場合にPythonが実行されるのはなぜですか

  20. 20

    サーバーをリモートでテストし続けるシェルスクリプトを書き込もうとしていますが、ログアウトするとelseステートメントに分類され続けます

  21. 21

    ステートメントが真の場合でも、他のステートメントが実行されていますか?

  22. 22

    Else ステートメントが実行されるべきでない場所で実行されています

  23. 23

    elseステートメントはifelseステートメントでは実行されません

  24. 24

    elseステートメントがcinステートメントで機能する場合、どうすればこれを作成できますか?

  25. 25

    falseの場合でもKotlinifステートメントが実行される

  26. 26

    ifステートメントの場合、それはtrueですが、再びループします

  27. 27

    「if」ステートメントの場合、条件は実行されません

  28. 28

    右クリックのコンテキストメニューは、WindowsのGoogleバックアップと同期で引き続き使用できますか?

  29. 29

    Roblox Lua ifステートメントは、値が真でない場合でも実行されます

ホットタグ

アーカイブ