試圖獲得有關使用腳本和使用動態列標題覆寫某些現有資料的一些幫助。感謝您的幫助,因為我認為這超出了我目前的經驗水平。
期望的結果:
如果日期 1 在日期 3 之后,我想將 A 列中當前設定為“之前”的所有單元格更改為“之后”(全部大寫),并突出顯示它們。如果 A 列中的任何資料不符合此條件,我也不想更改它們,這意味著如果 A 列中的單元格已經顯示“之后”,它可以保持原樣。
我想我可以弄清楚突出顯示的編碼部分,但這是我陷入困境的第一部分。
我當前的問題是我發現很難為這個腳本參考列標題,因為我需要這樣做,因為標題可以在不同的列中,所以依賴對特定列的常量參考是不可能的。這也讓我對如何為此執行 .setValues 感到困惑,因為它可能會遍歷整個列。
到目前為止我嘗試過的:
- 試圖利用下面參考文獻 1 中的代碼來解決這個問題,但它會覆寫所有單元格,而不僅僅是受影響的單元格
- 不確定我是否應該在函式中創建函式并使用 createTextFinder 來查找這些標題?這似乎是錯誤的,因為我只能使用它一次,而且我需要找到 3 列
- 嘗試使用一些將列更改為字母的腳本,但我不確定如何正確使用它們
我的代碼:是的,它不起作用,但這是我設定它的最佳嘗試:
function changeBefore() {
const ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1');
const tf = ss.createTextFinder('Before').matchEntireCell(true).matchCase(false);
const beforeCell = tf.findNext()
var date1Range = date1.getRange()
var date3Range = date3.getRange()
var bacRange = beforeorAfterColumn.getRange()
if (bacRange=='Before'==date1Range>date3Range){
beforeorAfterColumn.getRange().setValues('AFTER');
}//end of if
function beforeorAfterColumn(){
var headers = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1').getDataRange().getValues().shift();
var colindex = headers.indexOf('Before or After');
return colindex 1
function date1(){
var headers = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1').getDataRange().getValues().shift();
var colindex = headers.indexOf('Date 1');
return colindex 1
function date3(){
var headers = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1').getDataRange().getValues().shift();
var colindex = headers.indexOf('Date 3');
return colindex 1
}//end of date 3 function
}//end of date1 function
}//end of beforeorAfterColumn function
}//end of changeBefore function
當前作業表示例:

腳本的期望結果:

資源/參考:
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/367956.html標籤:谷歌应用程序脚本
下一篇:Apps腳本中的日期格式
