我一般用VBA编程,但我的公司正在转向用google docs来取代Excel。我的问题源于对象和集合。在VBA中,我能够创建一个类模块并创建一个对象。看起来我不能在Apps Script中这样做。此外,在VBA中,我简单地声明一个集合内的子如dim Col作为新的集合。然而,我似乎不能在我的应用程序脚本得到正确的。下面是我当前的代码。我试图循环通过行项目,保存行项目作为一个对象,并将该对象存储在一个集合与一个键。任何帮助都太好了!现在当我编译下面的代码时,它说collection()是未定义的。
function Create_Collection(){
var DFws = SpreadsheetApp.getActive().getSheetByName('Data Feed')
var KPws = SpreadsheetApp.getActive().getSheetByName('KP')
var DF_lastrow
var KP_lastrow
var CycleDate
var DF_Date
var i
var Ingcol = new Collection();
CycleDate = KPws.getRange(1,2).getValue(); //Sets which cycle ingredients need to be collected
DF_lastrow = DFws.getLastRow();
for (i = 2; i<= DF_lastrow; i++){
DF_Date = DFws.getRange(i,1).getValue();
if(DF_Date.toString() == CycleDate){
var IngObj = { } // empty object
IngObj.KitchenID = DFws.getRange(i,22).getValue(); // Added property KitchenID
IngObj.Recipe = DFws.getRange(i,3).getValue(); // Added property Recipe
IngObj.Name = DFws.getRange(i,4).getValue(); // Added property Name
Ingcol.add (IngObj.KitchenID,IngObj)
}
}
您没有在任何地方定义集合。
JavaScript不是基于类的,而是基于原型的,所以我认为你不需要做你想做的事情。
像这样初始化Incol
var Incol = {}
并添加如下对象:
Ingcol[IngObj.KitchenID] = IngObj;