這是
當洗掉功能僅適用于 Names List1 中的名稱時的 Sheet1:

uj5u.com熱心網友回復:
以防萬一,這里是如何從“C”列中洗掉所有鏈接的示例:
function remove_links_from_col_C() {
var range = SpreadsheetApp.getActiveSheet().getRange('C5:C');
var values = range.getDisplayValues();
range.clear().setValues(values);
}
如果您有彩色背景并且需要保持它們完整,可以通過以下方式完成:
function remove_links_from_col_C() {
var range = SpreadsheetApp.getActiveSheet().getRange('C5:C100');
var backgrounds = range.getBackgrounds(); // <--- save backgrounds
var values = range.getDisplayValues();
range.clear().setValues(values);
range.setBackgrounds(backgrounds); // <--- restore backgrounds
}
uj5u.com熱心網友回復:
我相信你的目標如下。
- 通過給出范圍,您想要洗掉過濾器視圖并想要重置“Sheet1”。
在這種情況下,下面的示例腳本怎么樣?
示例腳本:
在使用此腳本之前,請在 Advanced Google services 中啟用 Sheets API。
function myFunction() {
// Please set the range you want to delete the filter views.
var obj = { src: "Sheet1", dst: ["C4:C", "G4:G"] };
var ss = SpreadsheetApp.getActiveSpreadsheet();
var ssId = ss.getId();
var sheet = ss.getSheetByName(obj.src);
var ids = obj.dst.flatMap(e => {
var range = sheet.getRange(e);
var richTextValues = range.getRichTextValues();
var fids = richTextValues.flatMap(([r], i) => {
var url = r.getLinkUrl();
return url ? [url.split("=").pop()] : [];
});
var bk = range.getBackgrounds();
range.clearFormat().setBackgrounds(bk).setRichTextValues(richTextValues.map(([r]) => [r.copy().setLinkUrl(null).build()]));
return fids.map(f => ({ deleteFilterView: { filterId: f } }));
});
if (ids.length > 0) Sheets.Spreadsheets.batchUpdate({ requests: ids }, ssId);
}
- 在此示例腳本中,
var obj = { src: "Sheet1", dst: ["C4:C", "G4:G"] }您的列“C”和“G”被重置。
參考:
- 方法:電子表格.batchUpdate
- DeleteFilterViewRequest
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/406749.html
標籤:
