実現したいこと
お世話になります。
「A」と「B」の2シートがあるスプレッドシートにて、
「A」シートの項目「ID」列に他アプリから連携された値(ID)が自動入力されると、
そのIDに対応した氏名が「A」シートの項目「user」列に自動入力される。
という動作を想定したGASを作成しました。
なお、IDに対応した氏名が記載されているシートは「B」で、
「B」シートは、A列が「ID」、B列が「name」というシートです。(1行目に項目名無し)
「B」シートの行は、今後増減がある予定です。
前提
発生している問題・エラーメッセージ
「A」シートの項目「ID」列に他アプリから連携された値(ID)が自動入力されると
IDに対応した氏名が「A」シートの項目「user」列に自動入力されません。
但し、私が「ID」列にIDを手入力すると、そのIDに対応した氏名が自動入力されます。
エラーは発生しません。
問題点がございましたらご教示いただけますと幸いです。
宜しくお願い致します。
該当のソースコード
function onEdit(e) {
var sheet = e.source.getActiveSheet();
var range = e.range;
// 「A」シートの変更のみを処理する
if (sheet.getName() == "A") {
var column = range.getColumn();
var row = range.getRow();
// 「ID」の列(列番号で判断)のみを処理する if (column == 9) { var ID = range.getValue(); var userSheet = e.source.getSheetByName("B"); var userRange = userSheet.getDataRange(); var values = userRange.getValues(); // 「B」シートからIDに対応する氏名を検索 for (var i = 1; i < values.length; i++) { if (values[i][0] == ID) { sheet.getRange(row, 10).setValue(values[i][1]); break; } } }
}
}
試したこと
補足情報(FW/ツールのバージョンなど)

回答1件
あなたの回答
tips
プレビュー