我试图删除特定列(货币列)中的所有空空间,因为否则导入的值不能正确汇总。
我试过这个:
function cleaneuro() {
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getRange('H2:H996').activate();
spreadsheet.getActiveRangeList().setNumberFormat('#,##0.00\\ [$€-1]');
spreadsheet.getActiveRangeList().replace(/\s/g, "") // here it should happen
spreadsheet.getRange('A2').activate();
};
但是和很多时候一样,我似乎在替换行中出现了语法错误.有什么帮助吗?
发布于 2020-09-10 20:52:08
您不能在replace()
上调用RangeList。您需要循环遍历返回的范围,然后使用TextFinder。
function cleaneuro() {
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getRange('H2:H996').activate();
spreadsheet.getActiveRangeList().setNumberFormat('#,##0.00\\ [$€-1]');
var ranges = spreadsheet.getActiveRangeList().getRanges();
for (var i = 0; i < ranges.length; i++) {
ranges[i].createTextFinder('\\s').useRegularExpression(true).replaceAllWith('');
}
spreadsheet.getRange('A2').activate();
};
发布于 2020-09-11 10:11:34
您没有接收到所需输出的主要原因是,您使用的replace
方法对于类型为String的对象来说是典型的,而不是RangeList类型的对象。
因此,您可以尝试从该范围获取值,还可以在这里使用此公式来删除空空格VALUE.split(' ').join('')
,例如
ranges[i].getValue().split(' ').join('')
参考文献
https://stackoverflow.com/questions/63836853
复制相似问题