如何使用背景顏色突出顯示/警告 D5,如果單元格 (D5) 值與另一個作業簿 ID 范圍 Sheet2 匹配!(A2:A)。基于兩個標準。
一個是帶數字的,例如 345,另一個是帶數字的前綴字母,例如。R345

uj5u.com熱心網友回復:
我相信你的目標如下。
- 您想使用從“Sheet1”的單元格“D5”中檢索到的值來搜索“Sheet2”的“A”列的值。
- 例如,當搜索值為
R345時345,在“Sheet2”的“A”列中找到和時R345,您想將“Sheet1”的“D5”的背景顏色更改為紅色。- 在這種情況下,我認為當沒有找到搜索值時,您可能想要洗掉背景顏色。
- 您想使用 Google Apps 腳本實作此目的。
在這種情況下,下面的示例腳本怎么樣?
示例腳本:
function myFunction() {
const sheetName1 = "Sheet1"; // Please set the sheet name.
const sheetName2 = "Sheet2"; // Please set the sheet name.
const ss = SpreadsheetApp.getActiveSpreadsheet();
const [sheet1, sheet2] = [sheetName1, sheetName2].map(s => ss.getSheetByName(s));
const searchRange = sheet1.getRange("D5");
const searchValue = searchRange.getValue();
const m = typeof searchValue == "string" ? Number(searchValue.match(/(\d )/)[1]) : searchValue;
const search = sheet2.getRange("A2:A" sheet2.getLastRow()).createTextFinder(`^R${m}$|^${m}$`).useRegularExpression(true).matchEntireCell(true).findAll();
searchRange.setBackground(search.length == 2 ? "red" : null);
}
- 在此示例腳本中,從“Sheet1”的“D5”檢索搜索值。并且,從“Sheet2”的“A”列中搜索值。當找到 2 個值時,背景顏色變為紅色。
- 我使用 TextFinder 來檢查搜索值的數量。
筆記:
上面的示例腳本可以使用腳本編輯器運行。例如,下面的示例腳本怎么樣?在這種情況下,當您編輯單元格“D5”時,腳本由 OnEdit 的簡單觸發器運行。
function onEdit(e) { const sheetName1 = "Sheet1"; // Please set the sheet name. const sheetName2 = "Sheet2"; // Please set the sheet name. const range = e.range; const sheet = range.getSheet(); if (sheet.getSheetName() != sheetName1 || range.getA1Notation() != "D5") return; const sheet2 = e.source.getSheetByName(sheetName2); const searchValue = range.getValue(); const m = typeof searchValue == "string" ? Number(searchValue.match(/(\d )/)[1]) : searchValue; const search = sheet2.getRange("A2:A" sheet2.getLastRow()).createTextFinder(`^R${m}$|^${m}$`).useRegularExpression(true).matchEntireCell(true).findAll(); range.setBackground(search.length == 2 ? "red" : null); }
參考:
- 類范圍的 createTextFinder(findText)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/446562.html
