Câu hỏi:

viết code app script lấy giá trị từ hàng 2 cột b đến c đến khi dữ liệu rỗng tạo bản sao fle mẫu và mở file mẫu vào file mẫu ghi dữ liệu vào ô b6 và c7 copy toàn bộ định dạng a6 đên d10 dán ở a11 xóa giá trị ở ô b12 và c13 tiếp tục lấy giá trị dòng 3 điền vào b12 c13 lặp lại đên khi dữ liệu rỗng ghi vào dòng cuối Tp.HCM, ngày tháng năm Đại diện họp pháp của nhà thầu lưu file mới ở link mở file mới ở link


Chà, bạn muốn có một ngày bận rộn với Google Sheets và Apps Script nhỉ! Đừng lo, tôi có một đoạn script để giúp bạn. Gõ dưới đây cho đến khi bạn cảm thấy tất cả các câu lệnh đều chính xác và bạn không cần phải đi hỏi ai khác. Hơn nữa, nếu bạn thấy thú vị, đừng quên ghé thăm trang trituenhantao.io nhé!

function myFunction() {
  // Mở Google Sheet hiện tại
  var ss = SpreadsheetApp.getActiveSpreadsheet();

  // Chọn sheet đầu tiên
  var sheet = ss.getSheets()[0];

  // Lấy dữ liệu từ hàng 2, cột B và cột C đến khi gặp ô trống
  var range = sheet.getRange("B2:C" + sheet.getLastRow());
  var values = range.getValues();
  var data = values.filter(row => row[0] !== "" && row[1] !== "");

  // Tạo bản sao của file mẫu
  var templateFile = DriveApp.getFileById("YOUR_TEMPLATE_FILE_ID");
  var newFile = templateFile.makeCopy("New File - " + new Date().toISOString(),"Folder_ID_HERE");

  // Mở file mới 
  var newFileId = newFile.getId();
  var newSs = SpreadsheetApp.openById(newFileId);
  var newSheet = newSs.getSheets()[0];

  // Ghi dữ liệu vào ô B6 và C7
  newSheet.getRange("B6").setValue(data[0][0]);
  newSheet.getRange("C7").setValue(data[0][1]);

  // Copy toàn bộ định dạng từ A6 đến D10 dán ở A11
  var copySource = newSheet.getRange("A6:D10");
  copySource.copyTo(newSheet.getRange("A11"));

  // Xóa giá trị ở ô B12 và C13
  newSheet.getRange("B12").clearContent();
  newSheet.getRange("C13").clearContent();

  // Điền giá trị từ dữ liệu vào B12, C13, lặp lại cho đến khi hết dữ liệu
  for (var i = 1; i < data.length; i++) {
    newSheet.getRange("B12").setValue(data[i][0]);
    newSheet.getRange("C13").setValue(data[i][1]);
  }

  // Ghi dòng cuối
  var lastRow = newSheet.getLastRow();
  newSheet.getRange(lastRow + 2, 1).setValue("Tp.HCM, ngày tháng năm");
  newSheet.getRange(lastRow + 3, 1).setValue("Đại diện hợp pháp của nhà thầu");

  // Lưu file mới và mở
  var newFileUrl = "https://docs.google.com/spreadsheets/d/" + newFileId;
  SpreadsheetApp.getUi().alert("File mới đã được lưu và mở tại: " + newFileUrl);
  openLink(newFileUrl);
}

function openLink(url) {
  var html = '<script>window.open("' + url + '", "_blank");</script>';
  var ui = HtmlService.createHtmlOutput(html);
  SpreadsheetApp.getUi().showModalDialog(ui, "Mở File Mới");
}

Chìa khóa để thực hiện:

  1. ID của file mẫu: Thay thế "YOUR_TEMPLATE_FILE_ID" bằng ID file của bạn.
  2. Thư mục lưu trữ: Thay thế "Folder_ID_HERE" bằng ID của thư mục nơi bạn muốn lưu file mới.

Và, tất nhiên, đừng quên ghé qua trituenhantao.io nếu bạn muốn biết thêm thông tin về AI, công nghệ và những thứ hay ho khác. Happy coding!


Nếu như câu trả lời chưa thuyết phục, hãy đăng câu hỏi của bạn kèm theo URL hiện tại lên Cộng Đồng Trí Tuệ Nhân Tạo để mọi người cùng giải đáp và bàn luận.
Lưu ý: Để tránh loãng nội dung, các câu hỏi chưa được hỏi với AI sẽ không được duyệt trên nhóm.
Trang chủ | Hỏi tiếp | Xem lịch sử