了解谷歌电子表格设置与获取逻辑

时间:2013-04-11 20:28:17

标签: google-apps-script google-sheets

我拼命想学习用这种语言“思考”(我的母语编码语言是VBA / ASP)。

这是一个非常基本的示例,它只是读取Sheet1中特定单元格的内容,然后将该值赋给名为rngVal的变量

var ss = SpreadsheetApp.getActiveSpreadsheet();
ss.setActiveSheet(ss.getSheetByName("Sheet1"));
var rngVal = ss.setActiveSelection("A1").getValues(); 

当我试图解构这个非常简单的3行代码时(为了理解它的目的),我承认自己很困惑。

原因如下:

当我在每行之后插入一个msgbox时,我得到了这个:

var ss = SpreadsheetApp.getActiveSpreadsheet(); =“电子表格

ss.setActiveSheet(ss.getSheetByName("Sheet1")); =“电子表格

var rngVal = ss.setActiveSelection("A1").getValues(); = 单元格值

什么是“电子表格”? 这有什么用(?),如何使用它来导航工作表并在其中读/写值? 那两行代码可以做什么(?),有什么好处呢?

(我不是想要好斗,我只是想了解,以便我能学会用这种语言“思考”)

其次: 在第一行,我得到什么 ting?

在第二行我首先设置'ting,然后我得到'ting? (我对这条线实际上在做什么很困惑)

在第三行(最后一行)中有更多 set 'ting和 get 'ting,尽管这次它没有嵌套。

这是非常基本的代码(功能上),但我在如何“思考”使用该逻辑方面难以理解它的逻辑。

有没有人能够表现出一些耐心并通过描述这个选择单元格的简单代码,捕获它的价值,然后将其分配给变量的一步一步逻辑来帮助我? 请理解,当我“思考”如何完成这个非常简单的任务时,我可以用一个非常简洁的方式(在VBA中)...

rngVal = Sheets("Sheet1").Range("A1").Value

...因此,我对所有“电子表格”内容感到困惑,需要3行充满设置获取< /强>的

任何?

3 个答案:

答案 0 :(得分:1)

嗯,不知何故,正确答案(我的另一个)被否决了。同样,无需进行setactiveselection,无需更改所选单元格,只会使代码变慢。

答案 1 :(得分:0)

Google使用Javascript类来表示这些不同的对象。 我将第3行拆分为两部分以帮助解释。请比较:

var ss = SpreadsheetApp.getActiveSpreadsheet();
ss.setActiveSheet(ss.getSheetByName("Sheet1"));
var rng = ss.setActiveSelection("A1");
var val = rng.getValues();

上面的每一行都返回一个不同的Object类。第一行返回带有Spreadsheet类的Object,第二行返回Sheet类的对象,第三行返回Range类的对象,最后一行返回Object类的对象。

查看here,了解可以在不同类别的对象上执行的各种操作(方法)的文档。当我构建Google App时,我会访问该网页。

要将上述内容与您从VBA理解的代码进行比较,请注意以下几行:

rngVal = Sheets("Sheet1").Range("A1").Value

可以用Javascript写成一行,如下所示:

var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1").setActiveSelection("A1").getValues(); 

希望有所帮助。如果您有疑问,请告诉我。

答案 2 :(得分:0)

你们这样做比起来要复杂得多。不需要搞乱选择。 Getactivespreadsheet().getsheetbyname(“x”)。getrange(“a1”)。getValue()也可以。