我正在尝试清除Google中的电子表格。我正在使用以下代码但似乎无法使其工作。我认为我的代码太长了。任何人都可以简化吗?这对我的工作有很大的帮助。
function ClearCell() {
var sheet = SpreadsheetApp.getActive().getSheetByName('customer_list');
sheet.getRange("B34:G34").clearContent();
sheet.getRange("H34:J34").clearContent();
sheet.getRange("H37:J37").clearContent();
sheet.getRange("H40:J40").clearContent();
sheet.getRange("H43:J43").clearContent();
sheet.getRange("H46:J46").clearContent();'
依旧.................
答案 0 :(得分:0)
据推测,函数看起来像这样:
function ClearCell()
{
var sheet = SpreadsheetApp.getActive().getSheetByName('customer_list');
sheet.getRange("B34:G34").clearContent();
sheet.getRange("H34:J34").clearContent();
sheet.getRange("H37:J37").clearContent();
sheet.getRange("H40:J40").clearContent();
sheet.getRange("H43:J43").clearContent();
sheet.getRange("H46:J46").clearContent();
}
对我来说没问题。还有吗?是什么等等......
答案 1 :(得分:0)
你可以试试下面吗..它对我有用!
var rng = sheet.getRange("H34:J34")
for(i=0;i<390;i++){
rng.clearContent()
rng=rng.offset(3,0)
Logger.log("Clearing " + rng.getA1Notation())
}
答案 2 :(得分:0)
你的代码大量膨胀。您正在进行大量getRange().clearContet()
操作。您应该尽可能避免写入电子表格。如果你只能用1个范围清除值,那么我建议使用
dataRange = sheet.getDataRange();
arrValues = dataRange.getValues();
然后使用2D数组,您只需运行for循环
for (i = 0; i < arrValues.length; i++) {
if (/* How to identify the row you wish to delete */) {
for (ii = 0; ii < arrValues[i].length; ii++) {
if (/* Whatever rule defines that the cell needs to be cleared*/)
arrValues[i][ii] = '';
}
}
}
完成数组后,只需执行
即可 dataRange.setValues(arrValues)
显然,这只是一个粗略的想法。您可以更好地编写for
循环,当然您需要弄清楚如何识别要清除的字段