Saya akan mulai dengan mengatakan bahwa saya sangat tidak berpengalaman dengan pengkodean, jadi bantuan apa pun akan sangat dihargai!

Saya mencoba menampilkan/menyembunyikan baris berdasarkan apakah kotak centang dicentang atau tidak. Misalnya, saya memiliki kotak centang di A5 - Jika tidak dicentang, saya ingin menyembunyikan baris 6:18, dan jika dicentang, saya ingin menampilkan baris 6:18.

Hal yang sama berlaku untuk kotak centang di A19, untuk menyembunyikan/menampilkan baris 20:26 masing-masing. A27 untuk baris 28:37 dst.

Saya telah menemukan posting forum sebelumnya, di mana saya akan menautkan kode di bawah ini, namun kotak centang pertama menyembunyikan SEMUA baris (Misalnya jika A5 tidak dicentang, itu menyembunyikan baris 6:18, 20:26 DAN 28:37. Kapan itu kemudian diperiksa, itu hanya menampilkan baris 6:18.

function onEdit(e) {
  var cfg = { // Please set this object.
    A5: {startRow: 6, endRow: 18},
    A19: {startRow: 20, endRow: 26},
    A27: {startRow: 28, endRow: 37},
  };

  var activeRange = e.range.getA1Notation();
  var ranges = Object.keys(cfg);
  if (cfg[activeRange]) {
    var sheet = e.source.getActiveSheet();
    var values = sheet.getRange(ranges[0] + ":" + ranges[ranges.length - 1]).getValues();
    values.forEach(function(e, i) {
      if (e[0]) {
        sheet.showRows(cfg[ranges[i]].startRow, cfg[ranges[i]].endRow - cfg[ranges[i]].startRow);
      } else {
        sheet.hideRows(cfg[ranges[i]].startRow, cfg[ranges[i]].endRow - cfg[ranges[i]].startRow);
      }
    });
  }
}

Seperti yang telah dibahas, kotak centang pertama menyembunyikan SEMUA baris (Misalnya jika A5 tidak dicentang, kotak tersebut menyembunyikan baris 6:18, 20:26 DAN 28:37. Saat dicentang, hanya menampilkan baris 6:18.

1
aaronw 20 Agustus 2019, 02:55

1 menjawab

Jawaban Terbaik
  • Anda ingin menyembunyikan baris dari 6 hingga 18, ketika kotak centang "A5" tidak dicentang.
  • Anda ingin menyembunyikan baris dari 20 hingga 26, ketika kotak centang "A19" tidak dicentang.
  • Anda ingin menyembunyikan baris dari 28 hingga 37, ketika kotak centang "A27" tidak dicentang.
  • Saat kotak centang dicentang, Anda ingin menampilkan baris.
  • Anda ingin mencapai di atas menggunakan pemicu acara OnEdit dengan Skrip Google Apps.

Jika pemahaman saya benar, bagaimana dengan modifikasi ini? Tolong pikirkan ini hanya sebagai salah satu dari beberapa jawaban.

Dari:

var values = sheet.getRange(ranges[0] + ":" + ranges[ranges.length - 1]).getValues();
values.forEach(function(e, i) {
  if (e[0]) {

Untuk:

var values = sheet.getRange(ranges[0] + ":" + ranges[ranges.length - 1]).getValues().filter(String); // Modified
values.forEach(function(e, i) {
  if (e[0] === true) { // Modified

Jika saya salah memahami pertanyaan Anda dan ini bukan hasil yang Anda inginkan, saya minta maaf.

1
Tanaike 20 Agustus 2019, 01:44