我有一个脚本在非空时创建单元格边框:
function checkRange2(ss) {
var classeur = SpreadsheetApp.getActiveSpreadsheet();
var ss = classeur.getActiveSheet();
var range = ss.getRange("B5:B100");
range.setBorder(false, false, false, false, false, false);
var values = range.getValues();
for (var i = 0; i < values.length; i++) {
for (var j = 0; j < values[i].length; j++) {
if (values[i][j] !== "") {
range.getCell(i + 1, j + 1).setBorder(true, true, true, true, true, true)
.setBackground('#FECB8D');
}
}
}
}
我希望当单元格B5例如包含文本时,范围B5:E5是带边框的。还有其他人也排队。有可能吗?
亲切。
答案 0 :(得分:0)
这些修改怎么样?我不知道我是否能理解你想做什么。如果我误解了你的问题,请告诉我。我想修改它们。
在此修改过的脚本中,首先,它会检索B5:E100
的值。当字符串包含在列B中时,边框将被赋予行的列B到列E的单元格。例如,当单元格B5具有字符串时,&#34; B5:E5&#34;被边界包围着。
B5:B100
范围内检索的值时,可以使用一次&#34; for循环&#34;来完成if (values[i][0]) {
。
B5:E100
的范围。检索此范围的值也可以由if (values[i][0]) {
进行评估。B5:E5
范围的边框,可以使用range.setBorder()
来实现此目的。
offsetRow
获得的a1Notation定义范围。function checkRange2(ss) {
var classeur = SpreadsheetApp.getActiveSpreadsheet();
var ss = classeur.getActiveSheet();
var range = ss.getRange("B5:E100"); // Modified
range.setBorder(false, false, false, false, false, false);
var values = range.getValues();
var offsetRow = range.getRowIndex(); // Added
for (var i = 0; i < values.length; i++) {
if (values[i][0]) { // Modified
ss.getRange("B" + (i + offsetRow) + ":E" + (i + offsetRow)).setBorder(true, true, true, true, null, null) // Modified
.setBackground('#FECB8D');
}
}
}
.setBorder(true, true, true, true, true, null)
。
setBorder()
的最后一个参数可以使用null
。如果我误解了你的问题,我很抱歉。