首页 文章

使用脚本复制公式

提问于
浏览
2

我一直在编写一个脚本(在SO上有民间帮助) . 我设法创建了一个脚本,用于导入csv文件并根据导入的数据更新命名范围 .

这是我正在尝试做的图像:
enter image description here

此时我已导入已填充到A:G列的数据 . 列H:L中的单元格是公式,并且基于A:G中的数据 . 因为我已导入数据,所以数据现在比公式范围更长 . 如果不依赖于脚本,我只需双击突出显示的单元格右下角的小蓝色方块,公式就会向下复制 . 这是我在导入数据后要让脚本执行的操作 .

我创建了一个名为“formula_range”的范围,它会根据数据长度自动更新 . “formula_range”在单元格H3中开始并以L:N结尾,其中N是表单中行的长度 .

因此,“formula_range”包含一些带有公式的填充单元格,然后是空白行一直到工作表的底部 .

我看到了this SO帖子 . 所以在英语中,我的思路是:

  • 创建变量formula_range H3:L3作为范围

  • 将formula_range粘贴到formula_range中的每一行

  • 瞧?

如果formula_range中的第一行始终具有要复制的公式,如何获取变量formula_range . 换句话说它应该固定在H3:L3 .

我试过这个:

var copy_range = ss.getRangeByName("formula_range").getRange(1,5,1);
SpreadsheetApp.getUi().alert(copy_range);

我的警报说“未定义”(我真的不确定它会显示什么 . )

由于我要复制现有的公式,我的思路并不是最有效的 . 也许有更好的方法?

如何获取命名区域 formula_range[0]; 中的第一行?

如何使用脚本复制formula_range中的公式?

1 回答

  • 4

    我认为使用内置数组公式可以更有效地实现您想要实现的目标:

    https://support.google.com/docs/answer/3093275

    置于H3:

    = ARRAYFORMULA(DATE(A3:A,B3:B,1))

    对于第3行中H到L的每个公式,用数组公式将它们包围起来,并使用从第3行开始的开放范围扩展参数,如上例所示

相关问题