【问题标题】:Google apps script - Auto Fill Column?谷歌应用脚​​本 - 自动填充列?
【发布时间】:2014-03-11 10:26:46
【问题描述】:

我刚刚了解了 arrayformula 并继续将公式保存到新行中,现在我试图将单个字符串复制到新行“N”中。我怎样才能做到这一点?

基本上,我有一些带有公式的列,这些公式是使用数组公式复制下来的,我尝试使用它来将“N”复制到需要预先填充“N”的列中不行,有没有其他方法可以实现?

总的来说,我只是想问有没有一种方法可以使用公式或脚本用字母“N”填充单个列?如果是怎么办?

非常感谢

【问题讨论】:

    标签: google-apps-script google-sheets formula


    【解决方案1】:

    使用脚本最有效的方法是这样的:

    function myFunction() {
      var s = SpreadsheetApp.getActiveSheet();
      var col = [];
      for(var n=0 ; n<s.getMaxRows();n++){
        col.push(['N']);
      }
      s.getRange('N:N').setValues(col); // write data in any column, N in this example :-) 
    }
    

    它创建一个具有正确值和大小的二维数组,并一步将其写入工作表。

    【讨论】:

    • 但是你必须继续运行它来填充新行。它可以用一个数组公式来做到这一点
    • 这可以通过工作表触发器自动完成...但是如果您愿意,另一个答案会给出公式方法...两者各有利弊...您可以选择;)跨度>
    • 投了赞成票 - 两者都实现了我想要的,但是另一个会自动完成。谢谢你:)!
    • 是的,两者都是很好的方法。实际上要注意数组公式有时(但很少见)会卡住并停止自动更新,直到您单击它们并按 ctrl+something(它是手动任务),其中 serge 的方法与 onChange 相关,即使它失败一次,下一次更改会处理的。
    • 这个解决方案是我最喜欢的,记得使用 var sheet = SpreadsheetApp.getActiveSpreadsheet(); var s = SpreadsheetApp.setActiveSheet(sheet.getSheetByName('SHEET_TAB'))
    【解决方案2】:

    手头没有电子表格可以尝试,但可以尝试 =arrayformula(if(N:N=0;"N";"N"))

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-07
      • 2022-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-17
      • 2018-04-28
      相关资源
      最近更新 更多