google-apps-script - 应用程序脚本仅获取值内容
问题描述
我有以下工作正常:
function phototable() {
var ss = SpreadsheetApp.openById('####');
var lastRow = ss.getLastRow();
ss.getRange('H'+lastRow)
.setValue('=VLOOKUP("Form Responses_Images/"&B'+lastRow+',importrange("https://docs.google.com/spreadsheets/d/####/edit","Form Responses!U:Z"),4,false)');
}
但是,我不希望将公式复制到 columnH
中,而只是实际值。所以我尝试了:
ss.getRange('H'+lastRow)
.getValue('=VLOOKUP("Form Responses_Images/"&B'+lastRow+',importrange("https://docs.google.com/spreadsheets/d/###/edit","Form Responses!U:Z"),4,false)')
.copyTo('H'+lastRow,{contentsOnly:true});
但这并没有在 H 列中插入任何内容。有什么想法吗?
解决方案
修改点:
- 关于
I have the following that works fine:
,当我看到上面的脚本时,我认为在getValue
. 因为getValue
没有论据。我以为getValue
是setValue
。 - 在
copyTo('H'+lastRow,{contentsOnly:true})
,第一个参数是 thr 范围对象。 - 为了在脚本期间将公式的结果复制为字符串,需要使用
flush
.
当以上几点反映到您的脚本时,它变成如下。
修改后的脚本:
function phototable() {
var ss = SpreadsheetApp.openById('####');
var lastRow = ss.getLastRow();
var range = ss.getRange('H'+lastRow);
range.setValue('=VLOOKUP("Form Responses_Images/"&B'+lastRow+',importrange("https://docs.google.com/spreadsheets/d/###/edit","Form Responses!U:Z"),4,false)');
SpreadsheetApp.flush();
range.copyTo(range, {contentsOnly:true});
}
笔记:
- 在您的脚本中,
ss
是电子表格的第一个选项卡。请注意这一点。
参考:
推荐阅读
- bash - 如何让脚本运行实时服务器并在此之后执行命令?
- java - Iterator for Java Framework Collection 的不同结果
- java - 创建名为“projectingArgumentResolverBeanPostProcessor”的 bean 时出错
- php - 带有 Bootstrap 弹出框的 PHP 不呈现按钮和表单
- ceph - Ceph-Mgr-Dashboard 不适用于 Ceph Naultilus 版本
- laravel - 如何在 Laravel 5.8 中安装我的包?“您的要求无法解决为一组可安装的软件包。”
- r - 将微数据从 IPUMS 读入 R 的问题
- java - JNA 标记联合映射
- javascript - 当我 npm run dev 时,关于 vue-project 中 .jsx flye 标记的 eslint 错误
- python - 什么 Python 命令允许将建模的 Maya 几何图形导出为 USDA 文件格式?