应用If/Then在一个范围(google-apps-script)
Apply If/Then on a Range (google-apps-script)
我正在慢慢地努力理解如何制定一个共同的编程过程,但我需要有人愿意进一步教我如何钓鱼(在这个JS池塘)。
我想测试一个单元格范围(例如:A1:A10),如果在该范围内的单元格中发现了一个",",我想在该单元格右侧的单元格5列中编写一个公式。
到目前为止,我已经能够让它在指定特定单元格时工作,但我不确定如何采用它来处理一系列单元格。
(顺便说一句,这是我理解如何在VBA中做的事情-尽管没有SPLIT函数-但这种语言显然是一个非常不同的动物)
下面是我现在的文字:
var defSheet1 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1")
var test1 = defSheet1.getRange("A1").getValue();
var splitCell = '=SPLIT(A1,",")';
if (test1.indexOf(",") !== -1)
{
defSheet1.getRange("F1").setFormula(splitCell);
}
else
{
Browser.msgBox("NO SPLIT NECESSARY");
}
(顺便说一句,实际范围将通过使用getDataRange来确定,但为了简单起见,我在这里使用预先建立的范围)
我已经在这里学到了很多,我逐渐获得了在JS中"思考"的能力,但是VBA"For x = 1 to numLastRow"的概念在JS中没有为我点击。
当您处理电子表格中的多行和/或多列时,一个挑战是在索引和单元格位置可以表示的各种方式之间进行转换。
- 在A1Notation中,列首先表示为字母,然后是行,以1开头的数字表示。
- R1C1符号颠倒了行和列的顺序,两个维度都是从1开始的数字。
- javascript中的数组从索引0开始。当您将脚本发展为使用
getDataRange().getValues()
时,这一点非常重要。在由getValues()
返回的二维数组中,先表示行,然后表示列,如data[row][column]
。循环的上界需要相应地调整,如果您引用setFormula()
等范围方法,则可能需要+1
。
下面的代码片段将做您正在寻找的,作为一个起点。我省略了else
块以减少噪声。注意,使用getA1Notation()
动态地构建SPLIT
公式——这是脚本的直接演变。
您需要自己定义numLastRow
,并且由于脚本始终在访问Range方法,因此10
将意味着单元格A10
。
var defSheet1 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1")
for (var x=1; x<=numLastRow; x++) {
var srcRange = defSheet1.getRange(x,1);
var value = srcRange.getValue(); // Get value at Row x, Column 1
if (value.indexOf(",") !== -1) {
var splitCell = '=SPLIT(' + srcRange.getA1Notation() + ',",")';
defSheet1.getRange(x,5).setFormula(splitCell);
}
};
相关文章:
- 我已经创建了一个jquery转盘,并使用if条件来运行和停止转盘
- 另一个if(!$scope.$$phase)$scope$apply()szenario-需要帮助才能通关
- 在Javascript中将一个值和字符串数组转换为if语句
- 普通JS:使80%宽度元素100%IF包含一个图像
- 如何在不使用return的情况下跳过下一个if语句
- 需要一个用于评分系统的 JavaScript IF 语句
- for 循环中的 if 语句都执行,而不仅仅是一个
- 为什么下面的if语句排除了一个'It’s和其他的一样
- 如何停止和if语句如果另一个if语句为true
- 如何制作一个javascript多if
- Javascript验证不起作用——只要一个if语句为true,它就会停止所有if语句
- 如何在函数中编写 if/else 语句,告诉我一个数字是否可以被 2 整除(在 javascript 中)
- 可以't在if中检查一个变量
- 如何在jquery方法中创建一个if语句
- 每次使用角度控制器都会创建一个新的if实例
- 如果在 JavaScript 中的 if 条件之后在执行块中使用两个等于而不是只有一个,会发生什么情况
- 我可以在Drupal 7的jquery脚本中有一个php if语句吗?
- for 循环(但一个变量需要一个 if)
- 如果语句基于 return if 一个 $.post 命令
- 你能缩短'if'一个变量可以是多个变量的表述