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