我想在這兩種情況下使用腳本,因為當通過“拉”其他附近的單元格輸入資料時,可以更改使用公式和/或條件格式。
- 第一個腳本
有兩個作業表:Sheet1 和 Sheet2。
Sheet1包含三列:
A 列 - 不同 ID(ID1、ID2、ID3、...)的串列,
B 列 - 用 0 或 1 填充,
C 列 - 不同的名稱(Name1、Name2、Name3、...)。
Sheet2包含兩列:A 列是“ID”,B 列是“名稱”。
我想要一個以這種方式自動填充作業表 2的腳本:
列“ID” - 顯示 Sheet1 中值為“1”的那些 ID 的串列(列),
“名稱”列 - 在第一個作業表中自動填充與此 ID 關聯的名稱。
我知道這可以通過使用 FILTER 公式和 INDEX 來完成,但正如我所說,我試圖找到一種不在這些表格中使用公式的方法。
- 第二個腳本
有沒有辦法通過使用腳本有條件地格式化某些單元格?我希望一個特定的列(例如,Sheet1 - Column B)總是有灰色背景(#EEEEEE),無論是空的還是填充的。這可以通過簡單地選擇此列并更改其背景來完成,但我正在尋找一種通過使用腳本來實作這一點的方法。
此外,是否可以將數字 0 涂成紅色,將數字 1 涂成綠色,如果它們輸入到某個特定列的任何位置,例如 Sheet1,D 列?
謝謝!
uj5u.com熱心網友回復:
復制內容:
根據數字列過濾源行,然后通過setValues復制過濾后的行:
const number = 1;
const ID_COL = 1;
const NUM_COL = 2;
const NAME_COL = 3;
function autofill() {
const ss = SpreadsheetApp.getActive();
const sourceSheet = ss.getSheetByName("Sheet1");
const sourceValues = sourceSheet.getRange(2,1,sourceSheet.getLastRow()-1,sourceSheet.getLastColumn())
.getValues();
const targetValues = sourceValues.filter(row => row[NUM_COL-1] == number)
.map(row => [row[ID_COL-1], row[NAME_COL-1]]);
targetValues.unshift(["ID", "Name"]);
const targetSheet = ss.getSheetByName("Sheet2");
targetSheet.clear();
targetSheet.getRange(1, 1, targetValues.length, targetValues[0].length).setValues(targetValues);
}
onEdit如果您希望每次編輯作業表時都更新資料,您可以將函式重命名為(請參閱onEdit)。
更改背景顏色:
通過Range.setBackground設定范圍的背景顏色,如下所示:
function setColumnBackground() {
const ss = SpreadsheetApp.getActive();
const sourceSheet = ss.getSheetByName("Sheet1");
sourceSheet.getRange("B:B").setBackground("#EEEEEE");
}
條件格式:
使用ConditionalFormatRule管理條件格式規則,如下所示:
function addFormattingRules() {
const ss = SpreadsheetApp.getActive();
const sourceSheet = ss.getSheetByName("Sheet1");
const range = sourceSheet.getRange("B:B");
const rule1 = SpreadsheetApp.newConditionalFormatRule()
.whenNumberEqualTo(0)
.setBackground("red")
.setRanges([range])
.build();
const rule2 = SpreadsheetApp.newConditionalFormatRule()
.whenNumberEqualTo(1)
.setBackground("green")
.setRanges([range])
.build();
const rules = sourceSheet.getConditionalFormatRules();
rules.push(rule1, rule2);
sourceSheet.setConditionalFormatRules(rules);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/466567.html
