我想创建一个脚本来清除所有工作表上的固定单元格,但前四个单元格使用工作表名称填充完全相同的单元格。
到目前为止,我有一个用于清空单元格的脚本,并使用新函数填充它以获取工作表名称。打开电子表格时会触发第一个脚本。但是,它只是说加载......并且不会获取工作表名称。
我当前的(非工作脚本):
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()');
})
}
有什么好主意吗? 感谢
答案 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()部分,因为内容将被覆盖任何内容。