清除单元格并获取Google表格名称

时间:2015-11-03 10:58:31

标签: google-apps-script google-sheets

我想创建一个脚本来清除所有工作表上的固定单元格,但前四个单元格使用工作表名称填充完全相同的单元格。

到目前为止,我有一个用于清空单元格的脚本,并使用新函数填充它以获取工作表名称。打开电子表格时会触发第一个脚本。但是,它只是说加载......并且不会获取工作表名称。

我当前的(非工作脚本):

function sheetName() {
  return SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getName();
}


function clearRange() {
SpreadsheetApp.getActive().getSheets()
    .map(function (s, i) {
        if (i > 3) s.getRange('B3').clearContent().setFormula('=sheetName()');
    })
}

有什么好主意吗? 感谢

2 个答案:

答案 0 :(得分:0)

相同的方法,但稍加修改

function clearRange(n, range) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheets = ss.getSheets();
  sheets.map(function(sheet,index){
    if (index > n) sheet.getRange(range).clearContent();
  });
}

// call the function
function run(){
  clearRange(3, 'B3')
}

您可以传递参数n和范围,而不是硬编码的3和' B3'如果您想将该功能与其他参数一起使用

答案 1 :(得分:0)

为什么不自己编写工作表名称,而不是将自定义函数写入单元格?像这样......

from ctypes import CDLL
import logging, time

class UpdateAgent(object):

    def __init__(self, appcast_url):

        self.appcast_url = appcast_url

    def check_for_update(self):

        winsparkle = CDLL("WinSparkle.dll")

        url = self.appcast_url

        winsparkle.win_sparkle_set_appcast_url(url.encode('ascii', 'ignore'))

        winsparkle.win_sparkle_set_app_details(
                                unicode('Company'),
                                unicode('myapp'),
                                unicode(9))

        winsparkle.win_sparkle_init()

        winsparkle.win_sparkle_check_update_without_ui()

        #time.sleep(10)

    def run(self):
        try:
            self.check_for_update()
        except Exception as e:
            logging.info('%s' % (e))

如果需要,您可以触发此功能以在onOpen上运行..

注意:我认为您甚至可以省略.clearContent()部分,因为内容将被覆盖任何内容。