我正在使用Google Spreasheet管理我的银行帐户。我有一个“操作”spr。我复制粘贴我的操作(从下载的帐户提取)。 然后我标记它们:TYPE(“一次性”或“常规”),CATEGORY,SUBCATEGORY。 由于LABEL的操作,我想自动填充尽可能多的单元格。 那将是这样的:
browse rows where TYPE is undefined
if label is like '%...%'
then TYPE="..."; CATEGORY="..."; SUBCATEGORY="..."
if label is like '%...%'
then TYPE="..."; CATEGORY="..."; SUBCATEGORY="..."
and so on...
似乎我对单行有“if”条件(但我不知道如何使用“like”运算符),但是我没有成功使用空TYPE行的循环。< / p>
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Opérations');
if (ss.getRange('E106').getValue() == 'PRLV SEPA AVIVA VIE'){
ss.getRange('I106').setValue('Récurrent');
ss.getRange('J106').setValue('Logement');
ss.getRange('K106').setValue('Log-Assurance prêt');
}
有人可以帮助我处理我的问题吗? 非常感谢,最诚挚的问候, 纪尧姆
答案 0 :(得分:0)
我处理了我的脚本,最后得到了一些有用的东西:
function preRemplissageAuto() {
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Opérations');
for (var i = 2; i < ss.getLastRow(); i++) {
var type = ss.getRange('I'+i);
if (type.getValue() == ''){
var libelle = ss.getRange('E'+i).getValue();
var categ = ss.getRange('J'+i);
var sscateg = ss.getRange('K'+i);
var commentaire = ss.getRange('L'+i);
var log = ss.getRange('M'+i);
if (ss.getRange('E'+i).getValue() == 'PRLV SEPA SOGESSUR') {type.setValue('Récurrent');categ.setValue('Assurances');sscateg.setValue('A-Habitation');log.setValue('Remplissage auto'); }
if (ss.getRange('E'+i).getValue() == 'PRLV SEPA MAIF 79038 NIORT CEDEX') {type.setValue('Récurrent');categ.setValue('Assurances');sscateg.setValue('A-MAIF');log.setValue('Remplissage auto'); }
if (ss.getRange('E'+i).getValue() == 'PRLV SEPA MGEN 112') {type.setValue('Récurrent');categ.setValue('Assurances');sscateg.setValue('A-MGEN');log.setValue('Remplissage auto');}
//etc, lots of "if"
}
}
脚本正在运行。 我现在有大约1000行,但“类型”(对于“if”条件)最多约100行是空白。我第一次运行它时“执行延迟超时”,并在灯泡图标上得到以下建议: (来自法语的粗略翻译; - ))
此脚本非常使用Range.getValue方法。 该脚本使用被认为是昂贵的方法。每次通话都会产生很长时间 打电话到远程服务器。这可能会对此产生重大影响 脚本的运行时间。特别是对大数据。如果脚本有 性能问题,我们建议您使用其他方法,例如 Range.getValues()。
有人有建议来优化我的脚本吗? (使用推荐的方法或不使用)
感谢您的帮助,祝您度过愉快的一天!
纪尧姆