我想改变零空白在使用应用程序脚本表



我是使用app脚本的新手,我只是在尝试这个。我想把0转换成空格。

这是我设法创建的代码,但是它不起作用,我不知道如何修复它。

function zero() {
var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()
var selectedRange = ss.getActiveRange()
var selectedValues = selectedRange.getValues()
var selectedColumns = selectedRange.getWidth()
var selectedRows = selectedRange.getHeight()

for(i = 0; i<selectedRows; i++) {
for(j = 0; j<selectedColumns; j++) {
if (selectedValues[i][j] = 0) {
selectedRange.getCell(i + 1, j + 1).setValue(" ")
}
}
}
}
function onOpen() {
SpreadsheetApp.getUi()
.createMenu('Blank')
.addItem('Change zero to blank', 'zero')
.addToUi();
}

当我看到你的脚本时,我认为你的if (selectedValues[i][j] = 0) {}的if语句需要修改。如果单元格值为0的编号,请使用===代替==。所以,当你的脚本被修改时,请按如下方式修改:

修改脚本:

function zero() {
var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var selectedRange = ss.getActiveRange();
var selectedValues = selectedRange.getValues();
var selectedColumns = selectedRange.getWidth();
var selectedRows = selectedRange.getHeight();
for (i = 0; i < selectedRows; i++) {
for (j = 0; j < selectedColumns; j++) {
if (selectedValues[i][j] === 0) {
selectedRange.getCell(i + 1, j + 1).setValue(" ");
}
}
}
}
  • 如果您想将0的编号改为空白,也可以使用selectedRange.getCell(i + 1, j + 1).setValue(null);代替selectedRange.getCell(i + 1, j + 1).setValue(" ");

  • 我认为在循环中使用setValue时,过程成本会很高。在您的情况下,可以使用以下脚本:

    function zero() {
    var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
    var selectedRange = ss.getActiveRange();
    selectedRange.createTextFinder("0").matchEntireCell(true).replaceAllWith(" "); // or .replaceAllWith("");
    }
    

引用:

  • 如果其他…
  • createTextFinder (findText)

相关内容

  • 没有找到相关文章

最新更新