Mong a chị ghé qua cho lời giải script cho google sheet

Liên hệ QC
Status
Không mở trả lời sau này.

kienx83

Thành viên mới
Tham gia
23/10/12
Bài viết
19
Được thích
-2

Trong file này mình lượm trên internet, nhưng hiện tại script viết ra cho all sheet, bây giờ muốn cụ thể sheet "ABC" lấy dữ liệu "data"
sheet "XYZ" lấy dữ liệu "new" .Mong a chị hỗ trợ tks rất nhiều .. Hiện tại lấy tùy chọn data column C tương ứng column D
 
Lần chỉnh sửa cuối:
Muốn có lần sau thì bỏ "cao nhân" với tks đi nhé. Hãy tôn trọng người đọc.

Nếu tôi hiểu ý thì code ở sau. Để bạn dễ theo dõi thì tôi cố gắng giữ code cũ nhiều nhất, chỉ sửa những cái buộc phải sửa. Nhìn code bạn sẽ biết khi thêm sheet thao tác và sheet cần lấy dữ liệu thì đơn giản là thêm ELSE IF ...

Hi vọng code đúng.
Mã:
function onEdit(){
  
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var activeSh = ss.getActiveSheet();
  if (activeSh.getName() == "ABC") {      
      var sourceSh = ss.getSheetByName("data");
  }
  else if (activeSh.getName() == "XYZ") { 
      var sourceSh = ss.getSheetByName("new");
  } else {
    return;
  }
  var activeCell = activeSh.getActiveCell();
  
  if(activeCell.getColumn() == 3 && activeCell.getRow() > 1){
  
    activeCell.offset(0, 1).clearContent().clearDataValidations();
    
      var makes = sourceSh.getRange(1, 1, 1, sourceSh.getLastColumn()).getValues();
  
      var makeIndex = makes[0].indexOf(activeCell.getValue()) + 1;
      Logger.log(makeIndex)
        if(makeIndex != 0) {
  
      var validationRange = sourceSh.getRange(2, makeIndex, sourceSh.getLastRow());
      var validationRule = SpreadsheetApp.newDataValidation().requireValueInRange(validationRange).build();
      activeCell.offset(0, 1).setDataValidation(validationRule);
  
    }
  
  }
 
};
 
Muốn có lần sau thì bỏ "cao nhân" với tks đi nhé. Hãy tôn trọng người đọc.

Nếu tôi hiểu ý thì code ở sau. Để bạn dễ theo dõi thì tôi cố gắng giữ code cũ nhiều nhất, chỉ sửa những cái buộc phải sửa. Nhìn code bạn sẽ biết khi thêm sheet thao tác và sheet cần lấy dữ liệu thì đơn giản là thêm ELSE IF ...

Hi vọng code đúng.
Mã:
function onEdit(){
 
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var activeSh = ss.getActiveSheet();
  if (activeSh.getName() == "ABC") {    
      var sourceSh = ss.getSheetByName("data");
  }
  else if (activeSh.getName() == "XYZ") {
      var sourceSh = ss.getSheetByName("new");
  } else {
    return;
  }
  var activeCell = activeSh.getActiveCell();
 
  if(activeCell.getColumn() == 3 && activeCell.getRow() > 1){
 
    activeCell.offset(0, 1).clearContent().clearDataValidations();
  
      var makes = sourceSh.getRange(1, 1, 1, sourceSh.getLastColumn()).getValues();
 
      var makeIndex = makes[0].indexOf(activeCell.getValue()) + 1;
      Logger.log(makeIndex)
        if(makeIndex != 0) {
 
      var validationRange = sourceSh.getRange(2, makeIndex, sourceSh.getLastRow());
      var validationRule = SpreadsheetApp.newDataValidation().requireValueInRange(validationRange).build();
      activeCell.offset(0, 1).setDataValidation(validationRule);
 
    }
 
  }
 
};
Cám ơn bác đã ghóp ý tks, và kiểm chứng ạ
Bài đã được tự động gộp:

Muốn có lần sau thì bỏ "cao nhân" với tks đi nhé. Hãy tôn trọng người đọc.

Nếu tôi hiểu ý thì code ở sau. Để bạn dễ theo dõi thì tôi cố gắng giữ code cũ nhiều nhất, chỉ sửa những cái buộc phải sửa. Nhìn code bạn sẽ biết khi thêm sheet thao tác và sheet cần lấy dữ liệu thì đơn giản là thêm ELSE IF ...

Hi vọng code đúng.
Mã:
function onEdit(){
 
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var activeSh = ss.getActiveSheet();
  if (activeSh.getName() == "ABC") {    
      var sourceSh = ss.getSheetByName("data");
  }
  else if (activeSh.getName() == "XYZ") {
      var sourceSh = ss.getSheetByName("new");
  } else {
    return;
  }
  var activeCell = activeSh.getActiveCell();
 
  if(activeCell.getColumn() == 3 && activeCell.getRow() > 1){
 
    activeCell.offset(0, 1).clearContent().clearDataValidations();
  
      var makes = sourceSh.getRange(1, 1, 1, sourceSh.getLastColumn()).getValues();
 
      var makeIndex = makes[0].indexOf(activeCell.getValue()) + 1;
      Logger.log(makeIndex)
        if(makeIndex != 0) {
 
      var validationRange = sourceSh.getRange(2, makeIndex, sourceSh.getLastRow());
      var validationRule = SpreadsheetApp.newDataValidation().requireValueInRange(validationRange).build();
      activeCell.offset(0, 1).setDataValidation(validationRule);
 
    }
 
  }
 
};
Tks bác nhé hoạt động ok :)
 
Lần chỉnh sửa cuối:
Cảm ơn thì nói cảm ơn sao lại ngại miệng mà phải mượn tiếng Anh.
Làm tôi nhớ tới em Treepoo này sau khi đi Mẽo được vài tháng. :D

Screen Shot 2022-05-08 at 09.21.58.png
 
Thánh soi ko giúp nhưng luôn miệng đạo đức ng ta có nói cảm ơn và tks nhé, đi qua ko nói ko ai bảo câm bạn ah hì
Bạn đang xúc phạm người khác và là vi phạm nỗi quy. Bài 2 góp ý về tks (chữ đỏ và đậm), bạn cám ơn nhưng vẫn liên tiếp dùng, và vẫn dùng tiếng Anh và viết tắt.
Tôi ban nick bạn 10 ngày.
 
Cảm ơn thì nói cảm ơn sao lại ngại miệng mà phải mượn tiếng Anh.
Làm tôi nhớ tới em Treepoo này sau khi đi Mẽo được vài tháng. :D

View attachment 275589
Mình thì dốt tiếng Anh, ngữ pháp thì chịu, nhưng cùng tần số với cô bé nên nói thế này chắc cô bé hiểu: "Hoạt activities bên ngoài curricular"

Ít ra thì google dịch rất chuẩn, câu chính xác về mặt ngữ pháp, rõ nghĩa: "Các buổi học (hoạt động) ngoài chương trình giảng dạy", được hiểu là các hoạt động ngoại khóa.

dich.png

Chính xác nghệ danh là Chi - Pu đó anh.
Tôi cũng đoán là có cô bé nào đó nói "hoạt activities", tìm từ khóa này thì hóa ra Chi Pu. Từng đã đọc ở đâu đó "Chi Pu" nhưng không bao giờ quan tâm là ai.
 
Lần chỉnh sửa cuối:
Chính xác nghệ danh là Chi - Pu đó anh.
Bạn ấy nói: "... sẽ có một số cái hoạt activities nào đấy...." và ìn - doi cái mô - mần này...:D
Moon Take Gut Portion (Trăng Thu Dạ Khúc - một điệu nhạc cải lương)
Bởi chưng seven karma nên đành về quê học stake angling
Bắt con mimick gourd
Bỏ xuống waterhole bridge
Chờ khi nước lớn bet bite angling
Nếu em falcon owe thì về làm strawberry give cheek brother
Làm strawberry
Thì right have gourd
Nếu em không owe thì đừng làm strawberry give squander peacock

Srping Passion (Xuân Tình)
Gut gut thưa Nhị ca em đây là thằng Cheat, Cost thiệt họ Report
Thuở nhỏ chuyên làm nghề half muối SDT cướp bearing vua (phần nửa là bán, STD là bệnh lậu, bạc trục gọi là bearing hay bush)
Nay lớn lên mới đi head Sugar
Sách có câu "Bowl violet lake ball limb reject", trước mặt Nhị ca em loose pay rượu này. (cái bát lớn gọi là thố, màu tím tiếng hớn là tử, chân tay gọi là chi, bỏ ra thì là loại, gà từng đá thua chạy rồi thì thành gà rót, trả tiền thua độ gà thì gọi là chung)
Em glasses em spear anh là một đấng brother money.
Thà chết chứ không owe bow pine female flood Sugar Linger.
Broil thọ tử chứ bất broil thọ nhục. Em khen anh gut iron liver same
Xem female chết nhẹ tợ hair pink, anh chết như vầy thật là blood meaning seem wine (máu còn gọi là tiết, có vẻ là seem, rượu vang là wine)
 
Lần chỉnh sửa cuối:
Ninh = luộc kỹ = boil
(Ninh thọ tử bất ninh thọ nhục)
 
Moon Take Gut Portion (Trăng Thu Dạ Khúc - một điệu nhạc cải lương)
Bởi chưng seven karma nên đành về quê học stake angling
Bắt con mimick gourd
Bỏ xuống waterhole bridge
Chờ khi nước lớn bet bite angling
Nếu em falcon owe thì về làm strawberry give cheek brother
Làm strawberry
Thì right have gourd
Nếu em không owe thì đừng làm strawberry give squander peacock

Srping Passion (Xuân Tình)
Gut gut thưa Nhị ca em đây là thằng Cheat, Cost thiệt họ Report
Thuở nhỏ chuyên làm nghề half muối SDT cướp bearing vua (phần nửa là bán, STD là bệnh lậu, bạc trục gọi là bearing hay bush)
Nay lớn lên mới đi head Sugar
Sách có câu "Bowl violet lake ball limb reject", trước mặt Nhị ca em loose pay rượu này. (cái bát lớn gọi là thố, màu tím tiếng hớn là tử, chân tay gọi là chi, bỏ ra thì là loại, gà từng đá thua chạy rồi thì thành gà rót, trả tiền thua độ gà thì gọi là chung)
Em glasses em spear anh là một đấng brother money.
Thà chết chứ không owe bow pine female flood Sugar Linger.
Broil thọ tử chứ bất broil thọ nhục. Em khen anh gut iron liver same
Xem female chết nhẹ tợ hair pink, anh chết như vầy thật là blood meaning seem wine (máu còn gọi là tiết, có vẻ là seem, rượu vang là wine)
Đọc bài này xong cũng hại não lắm luôn, Việt - Anh - Hán các kiểu. Thôi I love toilet you stop here vậy.
 
Đọc bài này xong cũng hại não lắm luôn, Việt - Anh - Hán các kiểu. Thôi I love toilet you stop here vậy.
Tôi cố tình làm vậy để minh chứng trường hợp tiếng Anh làm lạc hướng đề tài chính:
Ở trên, tôi đưa ra hai điệu hát dân tộc cũng như trò tiêu khiển miền Nam:
1. Trăng Thu Dạ khúc, thường dùng trong vở cải lương.
2. Xuân Tình, rất hay dùng trong đờn ca tài tử.
 
Tôi cố tình làm vậy để minh chứng trường hợp tiếng Anh làm lạc hướng đề tài chính:
Ở trên, tôi đưa ra hai điệu hát dân tộc cũng như trò tiêu khiển miền Nam:
1. Trăng Thu Dạ khúc, thường dùng trong vở cải lương.
2. Xuân Tình, rất hay dùng trong đờn ca tài tử.
:D Lúc trước em cũng có nghe mấy nghệ sĩ hài ở hải ngoại chuyển thể mấy bài cải lương sang tiếng Anh để gây cười. Nghe xong phải kiếm từ Hán việt phù hợp (nếu không biết bài cải lương trước) để dịch từ tiếng Anh, cũng rối não luôn.
 
Status
Không mở trả lời sau này.
Web KT
Back
Top Bottom