Replace Google脚本-使用“查找并替换”;“在公式中搜索”;
我有一个谷歌表单,它从外部来源接收电话号码列表。电话号码以两种格式之一到达:Replace Google脚本-使用“查找并替换”;“在公式中搜索”;,replace,google-apps-script,Replace,Google Apps Script,我有一个谷歌表单,它从外部来源接收电话号码列表。电话号码以两种格式之一到达: 显示为12345678901的数字显示无误 显示为1(234)567-8901的数字将导致#错误 google sheets似乎正在读取第二组数字作为公式。当我点击错误单元格时,电话号码前面会有“=+”,如“=+1(234)567-8901”。我可以通过使用“在公式中搜索”复选框中的“查找并替换”来手动修复整个文档 查找:“=+” 替换:“” 有没有办法在谷歌应用程序脚本中实现自动化?我想运行此函数onEdit(),
#错误代码>李>
google sheets似乎正在读取第二组数字作为公式。当我点击错误单元格时,电话号码前面会有“=+”,如“=+1(234)567-8901”。我可以通过使用“在公式中搜索”复选框中的“查找并替换”来手动修复整个文档
查找:“=+”
替换:“”
有没有办法在谷歌应用程序脚本中实现自动化?我想运行此函数onEdit()
,以便出错代码>电话号码是实时固定的。您可以使用电子表格公式删除()-字符,假设号码在单元格A1中,然后在另一个单元格中,您可以放置:
=CONCATENATE(SPLIT(A1, "()-" ))
这将删除()字符
如果要使用脚本执行此操作,则可以使用replace删除()-
在数字列范围上方应用,以正确设置数字格式
编辑
这应该行得通,把“A1:A”改成你的专栏
function onEdit(){
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getRange("A1:A" + sheet.getLastRow());
var data = range.getValues();
var formulas = range.getFormulas();
for (var i=0;i< formulas.length;i++) {
if(typeof formulas[i] !== "undefined" && formulas[i] != ""){
formulas[i][0] = formulas[i][0].replace(/[=()+-]/gi, "");
data[i][0] = formulas[i][0].toString();
}
}
range.setValues(data).setNumberFormat("0");
}
函数onEdit(){
var sheet=SpreadsheetApp.getActiveSheet();
var range=sheet.getRange(“A1:A”+sheet.getLastRow());
var data=range.getValues();
var formulas=range.getFormulas();
对于(var i=0;i
很抱歉邮件延迟,我没有太多时间来处理这个问题。我在这里的语法方面做了很大的努力。我正在尝试将您的.replace(/[()-]/gi,”)
应用到一个列,以便它替换所有#错误代码>D列中的电话号码。此外,我尝试了标准查找和替换,它不会更改#错误中的任何数据代码>单元格。#错误代码>单元格仅在选择“在公式内搜索”时受影响。我不知道是否有可能在一个脚本中实现这一点。是的,你是对的。好的,那么您如何导入数字?在将数字发送到电子表格之前,也许有一种方法可以格式化。我在我的答案中的编辑应该就是您要找的。太棒了。好的,我现在必须问一下-有没有办法在数字固定后重新格式化(最好是1(123)456-7890格式)请注意,由于国家代码不同或根本没有国家代码,数字的长度可能不同。
function onEdit(){
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getRange("A1:A" + sheet.getLastRow());
var data = range.getValues();
var formulas = range.getFormulas();
for (var i=0;i< formulas.length;i++) {
if(typeof formulas[i] !== "undefined" && formulas[i] != ""){
formulas[i][0] = formulas[i][0].replace(/[=()+-]/gi, "");
data[i][0] = formulas[i][0].toString();
}
}
range.setValues(data).setNumberFormat("0");
}