Google apps script GoogleSheets脚本函数——使单元格内容全部大写,除非单元格包含超链接

Google apps script GoogleSheets脚本函数——使单元格内容全部大写,除非单元格包含超链接,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我正在使用以下功能在编辑时将第1列和第2列的内容更改为所有大写。这很有效 如果该单元格的内容是超链接,我希望将其修改为跳过该函数。第1列或第2列有时可能包含指向文件夹的链接,如果存在与之关联的链接,则不希望修改该单元格的内容 我是否能够以某种方式使用ISURL()函数 谢谢你的建议 onEdit(e) {AllCaps(e);} function AllCaps(e) { var sheet, sheetName, colToCapitalize1, colToCapitalize2

我正在使用以下功能在编辑时将第1列和第2列的内容更改为所有大写。这很有效

如果该单元格的内容是超链接,我希望将其修改为跳过该函数。第1列或第2列有时可能包含指向文件夹的链接,如果存在与之关联的链接,则不希望修改该单元格的内容

我是否能够以某种方式使用ISURL()函数

谢谢你的建议

onEdit(e) {AllCaps(e);}

function AllCaps(e) { 
    var sheet, sheetName, colToCapitalize1, colToCapitalize2;
    sheet = e.source.getActiveSheet();
    colToCapitalize1 = 1;
    colToCapitalize2 = 2;
    sheetName = 'Sheet1';
    if (sheet.getName() !== sheetName || e.range.rowStart < 1 || e.range.columnStart > 2 || typeof e.value == 'object') return;
    e.range.setValue(e.value.toUpperCase())
}
onEdit(e){AllCaps(e);}
函数AllCaps(e){
var表,表名,COLTOCAPIALIZE1,COLTOCAPIALIZE2;
sheet=e.source.getActiveSheet();
阴道资本化1=1;
阴道资本化2=2;
sheetName='Sheet1';
if(sheet.getName()!==sheetName | | e.range.rowStart<1 | | e.range.columnStart>2 | | typeof e.value=='object')返回;
e、 range.setValue(e.value.toUpperCase())
}

我认为在您的情况下,为了检查编辑单元格的超链接,我建议进行以下修改。请按如下方式修改您的脚本

发件人:
if(sheet.getName()!==sheetName | | e.range.rowStart<1 | | e.range.columnStart>2 | | typeof e.value=='object')返回;
if(sheet.getName()!==sheetName | | e.range.rowStart<1 | | e.range.columnStart>2 | | typeof e.value==“object”| | e.range.getRichTextValue().getRuns().filter(e=>e.getLinkUrl()).length>0)返回;
  • 在此修改中,if语句中添加了
    e.range.getRichTextValue().getRuns().filter(e=>e.getLinkUrl()).length>0
    。在这种情况下,当超链接包含在编辑的单元格中时,它将返回
    true
    。因此,
    e.range.setValue(e.value.toUpperCase())
    不会运行
参考资料:
  • 相关线程
if (sheet.getName() !== sheetName || e.range.rowStart < 1 || e.range.columnStart > 2 || typeof e.value == 'object') return;
if (sheet.getName() !== sheetName || e.range.rowStart < 1 || e.range.columnStart > 2 || typeof e.value == 'object' || e.range.getRichTextValue().getRuns().filter(e => e.getLinkUrl()).length > 0) return;