2023/12/3

超級無敵好用,今天與ChatGPT的對話


使用chatGPT3.5協助電腦工作已經有一陣子了,心得就一個字:神!大概是我用過最厲害的應用,每一次GPT寫的代碼全都能滿願,讓我這個程式小白也能享受一點執行程式的樂趣,真的是太棒了!今天的對話如下:

Me: 在google試算表的script中,我有一段程式碼如下:

function hideDataRows() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var dataRange = sheet.getRange("D2:D" + sheet.getLastRow());
   // 假設資料從第二列開始,D欄
  var dataValues = dataRange.getValues();
  for (var i = 0; i < dataValues.length; i++) {
    var row = i + 2;
     // 資料索引 + 2,因為索引從0開始,而實際的列從2開始
    var rowData = dataValues[i][0];
    if (rowData !== "") {
      sheet.hideRows(row);
    }

  }
}

我想在程式碼的開頭加入執行的條件:如果G1儲存格內的字串包含"ok",那麼就繼續往下執行,否則就停止執行。該怎麼改寫呢?

GPT秒答:

您可以在程式碼的開頭加入一個條件判斷,檢查 G1 儲存格的值是否包含 "ok"。如果不包含,則停止執行,否則繼續執行。以下是修改後的程式碼:
function hideDataRows() { var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); // 檢查 G1 儲存格的值是否包含 "ok" var conditionCell = sheet.getRange("G1"); var conditionValue = conditionCell.getValue(); if (conditionValue.indexOf("ok") === -1) { // 如果 G1 儲存格的值不包含 "ok",則停止執行 return; } var dataRange = sheet.getRange("D2:D" + sheet.getLastRow()); var dataValues = dataRange.getValues(); for (var i = 0; i < dataValues.length; i++) { var row = i + 2; var rowData = dataValues[i][0]; if (rowData !== "") { sheet.hideRows(row); } } }

這樣修改後,當 G1 儲存格的值不包含 "ok" 時,程式碼將會在條件判斷處停止執行,否則將繼續執行隱藏資料列的操作。

以下是其他chatGPT成功幫我解決的問題(皆列出原始提示): 

我有一個google sheets工作表,A欄是日期,如果日期是今天以前的日期,且迄今已超過7天,就隱藏該列,請問script應該怎麼寫?

我想在google試算表中寫一個script,讓我可以隱藏工作表C欄中除了第一列之外,所有包含資料的列,程式碼應該怎麼寫呢?

沒有留言:

張貼留言