【发布时间】:2019-06-19 22:42:24
【问题描述】:
我正在使用一个脚本来计算位置之间的英里数。例如,A 列 San Diego, CA 列 B 列 San Francisco 列 C 508.3。如果 A 列或 B 列是 === "",则它将列设置为 ""。
// Note: This is not my code.
function DrivingMeters(origin, destination) {
var directions = Maps.newDirectionFinder()
.setOrigin(origin)
.setDestination(destination)
.getDirections();
return directions.routes[0].legs[0].distance.value;
}
function DrivingMiles(origin, destination) {
if (origin === "" || destination === "") {
return "";
} else {
return DrivingMeters(origin, destination)/1609.34;
}
}
我正在尝试限制我进行 API 调用的次数,因为我有很多定期添加的信息。如果任一列为空白,我采取的第一步是在 API 调用之前返回“”。我还想做的是将C列中的单元格转换为 !== "" 为静态值,将公式全部删除。提前致谢!
【问题讨论】:
-
关于
What I would also like to do is convert cells in Column C that are !== "" to a static value removing the formula all together.,你想什么时候做这个?例如,在使用 OnEdit 事件触发器时,当自定义函数放在“C”列的单元格中并且“C”列为空时?或者在不使用触发器的情况下,您是否想通过手动运行脚本将“C”列(结果为空)的所有公式转换为电子表格中的静态值? -
@Tanaike 我认为如果这可以在函数运行时完成会很好,所以在函数本身中。也许它可以返回一个静态值。编辑时也会很棒。如果我不得不偶尔手动运行它,我什至可以。
-
感谢您的回复。我提出了 2 个示例脚本来实现您的目标作为答案。你能确认一下吗?请选择其中之一。如果我误解了您的问题并且这不是您想要的方向,我深表歉意。
-
我只希望将已返回值的单元格转换为静态值,例如 C1 508.3 mi。未返回值的单元格应保留公式。例如 A2 San Diego B2 "" C2 (有公式)。很抱歉,我可能解释得不好。
-
感谢您的回复。请不要道歉。我的回答不适合您的情况的原因是由于我的英语水平不佳。所以我想确认正确理解你的目标。当“C”列具有值时,您希望将公式转换为“C”列的值。另一方面,当“C”列没有值时,您希望保留公式。我的理解正确吗?
标签: google-apps-script google-sheets google-sheets-api