Nhờ anh chị sửa code Macro Spreadsheet

Liên hệ QC

feelingyes

Thành viên tiêu biểu
Tham gia
24/9/07
Bài viết
458
Được thích
395
Nghề nghiệp
Economic
Chào anh chị
Em có record một đoạn Macro như sau với mục đích
- Từ dòng thứ 100, cho chuột chạy thẳng xuống dòng tận cùng
- Rồi từ dòng tận cùng, phi ngược lên, để xác định hàng dữ liệu cuối cùng (ở đây Macro ghi lại dòng cuối cùng là A6
- Tại dòng cuối cùng, merge dữ liệu cột A6:J6, rồi chèn dữ liệu Total charge amount ( NOT included VAT 5,263%)
-
Tại dòng cuối cùng, tại cột K, tính Sum từ K2 trở xuống


function UntitledMacro_DnD() { var spreadsheet = SpreadsheetApp.getActive(); spreadsheet.getRange('A100').activate(); spreadsheet.getCurrentCell().getNextDataCell(SpreadsheetApp.Direction.DOWN).activate(); spreadsheet.getCurrentCell().getNextDataCell(SpreadsheetApp.Direction.UP).activate(); spreadsheet.getRange('A6:J6').activate() .mergeAcross(); spreadsheet.getCurrentCell().setValue('Total charge amount ( NOT included VAT 5,263%) :'); spreadsheet.getRange('K6').activate(); spreadsheet.getCurrentCell().setFormula('=sum(K2:K5)'); spreadsheet.getRange('K6').activate(); var currentCell = spreadsheet.getCurrentCell(); spreadsheet.getSelection().getNextDataRange(SpreadsheetApp.Direction.UP).activate(); currentCell.activateAsCurrentCell(); spreadsheet.getRange('A7').activate(); };

Hỏi:
- Với số dòng không xác định trước, em phải sửa code như nào để code trên chạy được?

Cám ơn
 
function myFunction() {
let ss = SpreadsheetApp.getActiveSpreadsheet()
let active_sht = ss.getActiveSheet()

// tìm dòng cuối cột A
let last_row = active_sht.getRange("A" + active_sht.getMaxRows()).getNextDataCell(SpreadsheetApp.Direction.UP).getRow()

// merge range và set value
let merge_range = active_sht.getRange("A" + last_row + ":J" + last_row).merge()
merge_range.setValue("Total charge amount ( NOT included VAT 5,263%)")

// thiết lập hàm tính tổng cho ô K + last_row
active_sht.getRange("K"+last_row).setFormula(`=SUM(K2:K${last_row - 1})`)

}
 
Web KT
Back
Top Bottom