前提・実現したいこと
GoogleSpreadSheetで、条件に一致した範囲(1行内の範囲)が、特定の行へ移動するような関数をつくりたいです。
発生している問題
行や列全体の移動が出来ることは分かったのですが(sheet.moveRows()
)、
範囲の移動でいい方法が見つからず困っています。
例えば、(上記画像のような)ある範囲をコピー&ペースト&元のデータを削除であれば出来るのですが、
もちろんこのままだと、次に同じ操作が行われたときに、上書きされてしまいます。
ある範囲内(上の画像で言えば、B19:H44)での未入力部分の最終行(or最初行)の判定が出来れば可能なものだとは思うのですが、
その方法も見つけられず...。
なので、
①sheet.moveRows()
のように、範囲が移動する際、もとの値が上に押し上げられるような動きをするMethod
②ある範囲内での未入力部分の最終行(or最初行)の判定
のどちらかの方法か、その他良い別の方法があれば、お教えいただけますと幸いです。
該当のソースコード
GoogleAppsScript
function moveRow(){ var sheet = SpreadsheetApp.getActiveSheet(); for(var i = 4; i <= 18; i++){ var range = sheet.getRange("B"+i + ":" + "H"+i); //4-18行の各行を取得 var values = range.getValues(); //4-18行の各値を取得 if(sheet.getRange("B"+i).getValue() == "A"){ //B列が"A"の場合 var moveTo = sheet.getRange("B19:H19"); //コピー先範囲 moveTo.setValues(values); //コピー先範囲へ値をセット range.clearContent(); //元の値を削除 } } }
どうぞよろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/13 09:16
2019/05/14 05:26