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 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 open file


Sure, tôi sẽ giúp bạn viết một đoạn mã Google Apps Script (GAS) để thực hiện tất cả các yêu cầu của bạn. Dưới đây là đoạn mã mình đã viết:

function processData() {
  // Mở file nguồn và file mẫu
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sourceSheet = ss.getSheetByName('Sheet1'); // Thay thế 'Sheet1' bằng tên sheet của bạn
  var templateFile = DriveApp.getFileById('template-file-id'); // Thay thế bằng ID file mẫu của bạn
  var newFile = templateFile.makeCopy('Copied Template');
  var newSpreadsheet = SpreadsheetApp.open(newFile);
  var newSheet = newSpreadsheet.getSheets()[0]; // Lấy trang tính đầu tiên trong file mẫu

  // Lấy dữ liệu từ cột B và C từ hàng thứ 2 của sheet nguồn
  var data = sourceSheet.getRange(2, 2, sourceSheet.getLastRow() - 1, 2).getValues();

  // Ghi dữ liệu vào file mới
  for (var i = 0; i < data.length; i++) {
    if (data[i][0] == "" && data[i][1] == "") {
      break; // Dừng khi gặp dòng dữ liệu rỗng
    }

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

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

    // Ghi dữ liệu vào dòng tiếp theo
    newSheet.getRange('B12').setValue(data[i + 1] ? data[i + 1][0] : '');
    newSheet.getRange('C13').setValue(data[i + 1] ? data[i + 1][1] : '');

    // Dừng khi không còn dữ liệu
    if (!data[i + 1] || (data[i + 1][0] == "" && data[i + 1][1] == "")) {
      break;
    }
  }

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

  // Open the newly created file
  SpreadsheetApp.getUi().alert('Link to the file: ' + newSpreadsheet.getUrl());
}

Lưu ý:

  1. Thay thế template-file-id bằng ID của file mẫu của bạn.
  2. Đảm bảo rằng tên của sheet nguồn trong dòng var sourceSheet = ss.getSheetByName('Sheet1'); tương ứng với tên sheet của bạn.

Nếu có gì thắc mắc hoặc cần thêm hỗ trợ, đừng ngần ngại truy cập trituenhantao.io để tìm hiểu thêm nhé! 🌟


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ử