ご訪問ありがとうございます。
Googleシートマスターのひろしです。
前回
【GAS】2次元配列からGoogleカレンダーに登録する
今回は、とっても価値の高い方法をお伝えします。
これを知ることであなたは、
- GASでコピペする方法がわかります。
- 今日の日付の挿入方法がわかります。
- 最下部の位置を取得する方法がわかります。
なので、サクッとマスターして
と答えてあげてください。
ご質問
動画はこちら
スクリプトはこちら
function CopyTitleOnLast() {
const ss = SpreadsheetApp.getActiveSpreadsheet()
const shSource = ss.getSheetByName("タイトル")
const lclm = shSource.getLastColumn()
const sdata = shSource.getRange(1,1,2,lclm) //コピー元のデータ
const shDest = ss.getSheetByName("日報")
let lRow = shDest.getLastRow()
console.log(lRow)
// console.log( sh_day.getRange(21,1).getDisplayValue())
//A列をすべて取得する
const dataA = shDest.getRange(1,1,lRow,1).getValues()
console.log(dataA)
//最下行から入力されている行を取得する
let insertRow = 0
console.log("A1はdataA[0][0]→",dataA[lRow-1][0])
for(i=lRow-1;i>=0;i--){
if(dataA[i][0] != ""){
insertRow = i+1+2 //0オリジンのため+1、さらに2行下なので+2する
console.log(i)
break
}
}
console.log(insertRow)
//タイトル行のコピー
sdata.copyTo(shDest.getRange(insertRow,1))
//today()に今日の日付を上書きする
shDest.getRange(insertRow+1,1).setValue(new Date())
}
最下部は、最下行からループさせることで取得できます。
ただし、バッファ内のインデックスは0から始まるので
注意が必要です。
最後までご覧いただきありがとうございます。
つぎはこちら
【GAS】GoogleドキュメントにGスプレッドシートのデータを差し込む
コメント
この度はありがとうございました。
最下行からループさせるとはすごいですね!
絶対に思いつかないですし、ネットにもいくら探しても出てこないですね。
さすがです!
今日出勤してタイトルが作成されていて感動しました!
本当にありがとうございます。
返信ありがとうございます。
そんなに喜んでいただき光栄です^^