Tự động thêm viền xung quanh các ô không trống


7

Tôi đang tìm cách để các đường viền ô tự động được áp dụng khi một ô không trống. Tôi nghĩ rằng tôi có thể sử dụng định dạng có điều kiện cho việc này, nhưng nó dường như không phải là một lựa chọn.

Câu trả lời:


3

Điều này có thể với một tập lệnh ("Công cụ> Trình chỉnh sửa tập lệnh"), sử dụng phương thức setBorder . Đây là một kịch bản demo nhỏ

function onEdit() {
  var cell = SpreadsheetApp.getActiveRange();
  if (cell.getValue() !== "") {
    cell.setBorder(true, true, true, true, true, true);
  }
  else {
    cell.setBorder(false, false, false, false, false, false);
  }
}

Điều này chạy trên mọi chỉnh sửa, đặt đường viền vào ô / phạm vi hoạt động nếu nó không trống, loại bỏ chúng nếu không.

Tuy nhiên, logic trên là quá đơn giản. Nếu một ô được làm trống bằng một chỉnh sửa, nhưng có hàng xóm không trống, một số đường viền nên được giữ lại. Đây là một phiên bản giải quyết vấn đề này bằng cách loại bỏ tất cả các viền và sơn lại chúng xung quanh các ô không trống.

function onEdit() {
  var range = SpreadsheetApp.getActiveSheet().getDataRange();
  range.setBorder(false, false, false, false, false, false);
  var values = range.getValues();
  for (var i = 0; i < values.length; i++) {
    for (var j = 0; j < values[i].length; j++) {
      if (values[i][j] !== "") {
        range.getCell(i + 1, j + 1).setBorder(true, true, true, true, true, true);
      }
    }
  }
}

Nhưng nhấp nháy liên tục của tất cả các biên giới là gây phiền nhiễu và chậm và gây phiền nhiễu. Tốt hơn là để công việc vẽ tranh này được gọi thủ công, thông qua một menu. Đây là phiên bản cuối cùng của tập lệnh: nó thêm một mục menu "Tùy chỉnh> Biên giới cho các ô không trống" bất cứ khi nào bảng tính được mở.

function onOpen() {
 var menu = [{name: "Borders for nonempty cells", functionName: "borders"}];
 SpreadsheetApp.getActiveSpreadsheet().addMenu("Custom", menu);
}

function borders() {
  var range = SpreadsheetApp.getActiveSheet().getDataRange();
  range.setBorder(false, false, false, false, false, false);
  var values = range.getValues();
  for (var i = 0; i < values.length; i++) {
    for (var j = 0; j < values[i].length; j++) {
      if (values[i][j] !== "") {
        range.getCell(i + 1, j + 1).setBorder(true, true, true, true, true, true);
      }
    }
  }
}

0

Tôi có thể làm điều đó chỉ bằng cách sử dụng định dạng có điều kiện trong MS Excel và sau đó nhập sách vào trang tính Google.

Nó giữ định dạng có điều kiện của các đường viền miễn là tôi không chạm vào các điều kiện để định dạng. Trong trường hợp như vậy, định dạng có điều kiện dừng hoạt động cho các đường biên.

Đó là một triển khai Google nên sửa.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.