1

我吨NamedRanges在我的电子表格。 这些是我输入数据的区域。 我怎么能做一个函数来清除所有namedRanges中的所有值? (所有我发现到目前为止是这样的,但它只是一个清除指定范围内)清除(不删除)所有在谷歌电子表格NamedRanges

function clearRange1() { 
    //replace 'Sheet1' with your actual sheet name 
    var sheet = SpreadsheetApp.getActive().getSheetByName('Sheet1'); 
    sheet.getRange('B7:G7').clearContent(); 
    } 

回答

1

我相信你可以做这样的事情。我没有看到任何方式可以在电子表格中获得所有范围的名称。如果有一个功能可以做到这一点,那么了解它就太好了。

function clearAllNamedRanges() { 

    var ss = SpreadsheetApp.getActive(); 

    var namedRanges = [ "Sheet1!A3:B5", 
         "RangeName1", 
         "MyFunSheet!C5:H26" ]; 

    namedRanges.forEach(function(rangeName) { 

    ss.getRangeByName(rangeName).clearContent(); 

    }); 
} 
+0

谢谢,这已经帮助!由于我必须从另一片触发它,我尝试设置SS这样的:'VAR SS = SpreadsheetApp.getActiveSpreadsheet()getSheetByName(“JAN”);'但是,给我一个错误:**的Funktion getRangeByName对象表不发现**你有一个想法,为什么? – TobiasH

+0

的'getSheetByName()'函数只是'Spreadsheet'对象上可用。我相信命名范围在“电子表格”中是唯一的。这意味着你不需要'Sheet'来访问指定的范围。您可以将整个电子表格中的_all_命名范围放入该数组中,并且会为您清除这些范围。希望这个更清楚一点。 – fooby

相关问题