Google Apps 脚本 - 传入范围的语法
Google Apps script - syntax of passed in ranges
我使用 Google Apps 脚本来分析 Google Sheet 中的一些数据。
我想获取从代码列表 "TickerRange" 中提取的一组代码 "Tickers" 的第一个购买日期和最后一个销售日期。日期在 "dateRange" 中。
仅当在 "includeRange" 中选中相关复选框时,才应将代码包含在计算中。
经过大量尝试,我认为该行存在语法问题:
if (TickerRange[i] == Tickers[j]) {
我也试过了
if (TickerRange[i].value == Tickers[j].value) {
但还是不行。
完整代码在这里:
function TickersDates(Tickers,TickerRange,dateRange,includeRange) {
var Datesoutput = new Array(1);
// Compute StartDate and EndDate for the current tickers
var dateTemp = new Date(1900, 01, 01);
var minDate= new Date(2900, 01, 01);
var maxDate= new Date(1900, 01, 01);
for(var j=0, jLen=Tickers.length; j<jLen; j++) {
if (includeRange[j]=="true" && Tickers[j]!="") {
for(var i=0, iLen=dateRange.length; i<iLen; i++) {
dateTemp = new Date(dateRange[i]);
if (isValidDate(dateTemp)){
if (TickerRange[i] == Tickers[j]) {
minDate = Math.min(dateTemp.valueOf(), minDate.valueOf());
maxDate = Math.max(dateTemp.valueOf(), maxDate.valueOf());
}
}
}
}
}
var StartDate = new Date(minDate)
var EndDate = new Date(maxDate)
Datesoutput[0]=StartDate
Datesoutput[1]=EndDate
return Datesoutput;
}
自定义函数的arguments是一个二维数组。你应该使用
if (TickerRange[i][0] == Tickers[j][0]) {
因为无法比较对象:[]!==[]
我使用 Google Apps 脚本来分析 Google Sheet 中的一些数据。 我想获取从代码列表 "TickerRange" 中提取的一组代码 "Tickers" 的第一个购买日期和最后一个销售日期。日期在 "dateRange" 中。 仅当在 "includeRange" 中选中相关复选框时,才应将代码包含在计算中。 经过大量尝试,我认为该行存在语法问题:
if (TickerRange[i] == Tickers[j]) {
我也试过了
if (TickerRange[i].value == Tickers[j].value) {
但还是不行。 完整代码在这里:
function TickersDates(Tickers,TickerRange,dateRange,includeRange) {
var Datesoutput = new Array(1);
// Compute StartDate and EndDate for the current tickers
var dateTemp = new Date(1900, 01, 01);
var minDate= new Date(2900, 01, 01);
var maxDate= new Date(1900, 01, 01);
for(var j=0, jLen=Tickers.length; j<jLen; j++) {
if (includeRange[j]=="true" && Tickers[j]!="") {
for(var i=0, iLen=dateRange.length; i<iLen; i++) {
dateTemp = new Date(dateRange[i]);
if (isValidDate(dateTemp)){
if (TickerRange[i] == Tickers[j]) {
minDate = Math.min(dateTemp.valueOf(), minDate.valueOf());
maxDate = Math.max(dateTemp.valueOf(), maxDate.valueOf());
}
}
}
}
}
var StartDate = new Date(minDate)
var EndDate = new Date(maxDate)
Datesoutput[0]=StartDate
Datesoutput[1]=EndDate
return Datesoutput;
}
自定义函数的arguments是一个二维数组。你应该使用
if (TickerRange[i][0] == Tickers[j][0]) {
因为无法比较对象:[]!==[]