在 Google Sheet 宏中查找和替换
Posted
技术标签:
【中文标题】在 Google Sheet 宏中查找和替换【英文标题】:Find and Replace in Google Sheet Macro 【发布时间】:2021-11-30 04:24:08 【问题描述】:我有一个 Google 表格文件,每个月我都需要在其中复制一些数据,它们的复制方式如下: “-1 200,00 欧元”或“=+80,66 欧元” 我想创建一个自动替换的宏:
- "," with "."
- " EUR" with ""
- " " (shortspace) with ""
问题是值 =+80,66 EUR 看起来像一个公式,所以 #ERROR 并且当我尝试替换它时,它没有工作。这是我写的脚本:
function ReplaceH()
var spreadsheet = SpreadsheetApp.getActive();
var range = spreadsheet.getRange("D1:E49");
var data = range.getValues();
for (var row = 0; row < data.length; row++)
for (var col = 0; col < data[row].length; col++)
data[row][col] = (data[row][col]).toString().replace('=+', '');
data[row][col] = (data[row][col]).toString().replace(' ', '');
data[row][col] = (data[row][col]).toString().replace('EUR', '');
data[row][col] = (data[row][col]).toString().replace(',', '.');
range.setValues(data);
;
【问题讨论】:
请为您的工作表截图。 你希望最终的字符串是什么样子的? 【参考方案1】:试试这个
=SUBSTITUTE(regexextract(A1,"[\-0-9, ]+")," ","")
【讨论】:
我试过 data[row][col] = (data[row][col]).toString().replace(RegExp('[0-9, ]+'),' ', '');但它会删除几乎所有内容,并且不能解决#error 问题! 好的,我想出的是一个自定义函数。我也会在脚本里面做。【参考方案2】:在脚本中,使用
function ReplaceH()
var spreadsheet = SpreadsheetApp.getActive();
var range = spreadsheet.getRange("B1:B2");
var data = range.getValues();
var regExp = new RegExp("[\-+0-9, ]+");
for (var row = 0; row < data.length; row++)
for (var col = 0; col < data[row].length; col++)
var x = regExp.exec(data[row][col]);
data[row][col] = x[0].replace(/ /g,'')
range.setValues(data);
;
【讨论】:
我从行 data[row][col] = x[0].replace(/ /g,'') 中得到“TypeError: Cannot read property '0' of null” 我已经更新了正则表达式docs.google.com/spreadsheets/d/…以上是关于在 Google Sheet 宏中查找和替换的主要内容,如果未能解决你的问题,请参考以下文章
使用绝对引用($)锁定Google Spreadsheets中的多个单元格
Sheet中的Google脚本,参考最后一行,查找故障单编号和客户编号,然后使用它来查找添加子文件夹的文件夹