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

Google apps script 了解谷歌电子表格设置与获取逻辑,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我正在拼命学习用这种语言“思考”(我的母语是VBA/ASP) 下面是一个非常基本的示例,它只需读取Sheet1中特定单元格的内容,然后将该值赋给名为rngVal的变量 var ss = SpreadsheetApp.getActiveSpreadsheet(); ss.setActiveSheet(ss.getSheetByName("Sheet1")); var rngVal = ss.setActiveSelection("A1").getValues(); 当我试图解构这段非常简单的三

我正在拼命学习用这种语言“思考”(我的母语是VBA/ASP)

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

var ss = SpreadsheetApp.getActiveSpreadsheet();
ss.setActiveSheet(ss.getSheetByName("Sheet1"));
var rngVal = ss.setActiveSelection("A1").getValues(); 
当我试图解构这段非常简单的三行代码时(为了理解它的用途),我承认自己相当困惑

原因如下:

当我在每行后面插入一个msgbox时,我得到以下结果:

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

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

var rngVal=ss.setActiveSelection(“A1”).getValues()=单元格值

什么是“电子表格”? 这对(?)有什么帮助?我如何使用它来导航工作表和读取/写入工作表中的值? 这是两行代码,做什么(?),有什么好处

(我不是想好斗,我只是想理解,这样我就可以学会用这种语言“思考”)

第二: 在第一行,我得到了什么

在第二行中,我先是设置'ting,然后是获取'ting?(我很困惑那条线到底在做什么)

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

这是非常基本的代码(功能上),但我很难掌握它的逻辑,即如何使用该逻辑“思考”

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

…因此,我真的被所有的“电子表格”内容以及需要3行填写setget的需求弄糊涂了


有人吗?请?

谷歌使用Javascript类来表示这些不同的对象。 为了便于解释,我将第3行分成了两部分。请比较:

var ss = SpreadsheetApp.getActiveSpreadsheet();
ss.setActiveSheet(ss.getSheetByName("Sheet1"));
var rng = ss.setActiveSelection("A1");
var val = rng.getValues();
上面的每一行返回一个不同的对象类。第一行返回带有类电子表格的对象,第二行返回类工作表的对象,第三行返回类范围的对象,最后一行返回类对象的对象

查看有关可以对不同对象类执行的各种操作(方法)的文档。当我构建一个谷歌应用程序时,我就生活在这个网页上

要将上述内容与您从VBA中理解的代码进行比较,请执行以下命令:

rngVal = Sheets("Sheet1").Range("A1").Value
可以用Javascript在一行中编写,如下所示:

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

希望有帮助。如果你有问题,请告诉我

你们做这件事比需要的更复杂。不需要干扰选择。
Getactivespreadsheet().getsheetbyname(“x”).getrange(“a1”).getValue()也可以工作。

Hmm不知怎的,正确答案(我的另一个)被否决了。同样,setactiveselection是没有意义的,不需要更改选定的单元格,它只会使代码变慢。

这。。。“var ss=SpreadsheetApp.getActiveSpreadsheet().getSheetByName(“Sheet1”).setActiveSelection(“A1”).getValues();”非常漂亮!我非常感激!还有一个问题:电子表格是GET。这张单子是我的。但是设置了范围,然后(再次)获取该范围的值。在这段特殊的代码中,SET和GET的概念是什么?顺便说一句,我怎么从来没有见过这样写的代码?它比我经常遇到的要优雅和直截了当得多(更重要的是,它很管用!)。不要介意马特。你已经回答了。类和对象。再次感谢!!!(也是为了链接!)很高兴能帮忙!希望你能做些很棒的事情!美好的你们让我学到了我希望理解的东西。我非常感激。谢谢分享知识!我不知道这个网站在“投票”方面是如何运作的。在我弄明白这里的非直觉投票系统之前,我可能已经掌握了JS,但是请随意指导我,我会纠正明显的不公正。我很感激,所以对任何帮助我的人和每个人来说都是“绿色支票”。所以我该怎么做?仅供参考:显然我缺乏足够的“声誉”来感恩。UH好啊不管那意味着什么,你是对的。。。而被接受的答案并不是真的:用S来获取值将返回一个不必要和不需要的矩阵,而不是单个值。。。我投票试图补偿:-)很好!打得好,谢尔盖·英萨斯!照顾那个些花时间帮助他人的人的方式:)顺便说一句,关于价值和价值观,这是非常正确的。当我进一步发展我的剧本时,我发现了这一点。在我未来的所有问题上,请随意插入您的输入(和编辑能力):P您似乎在这里的一切之上!谢谢谢谢顺便说一句,这篇评论主要是针对Zig Mandel(我只是忘了提及;-)但我当然感谢你的赞美:)。
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1").setActiveSelection("A1").getValues();