excel - Google 表格中的基本循环
问题描述
我正在尝试使用我在 Google 表格中的 excel 中制作的宏。这是我第一次使用它,我有点工作,但与 excel 相比似乎真的很慢。不知道发生了什么,让它变得如此缓慢。
我用一堆不同的方式弄乱了循环,但似乎仍然很慢。它应该只运行大约 20-50 次。
循环应该是:
当 A < B
然后 A = A+1
function loopscript() {
var app = SpreadsheetApp;
var activeSheet = app.getActiveSpreadsheet().getActiveSheet();
var num1 = activeSheet.getRange(3, 2).getValue();
var num2 = activeSheet.getRange(4, 10).getValue();
for(var i=1;num2 < num1;i++) {
var num3 = activeSheet.getRange(6, 2).setValue(i);
num2 = activeSheet.getRange(4, 10).getValue();
}
}
解决方案
您没有设置单元格的值num2
。每次循环运行时,它都会从 (4,10) 中获取它自己的值。你可以这样写:
num2++;
activeSheet.getRange(4, 10).setValue(num2);
另外,我建议您在循环外声明 num3 变量,不要每次都这样做:
var num3;
for(var i=1;num2 < num1;i++) {
num3 = activeSheet.getRange(6, 2).setValue(i);
...
如果您只想在工作表中查看计数器,或者根本不声明它:activeSheet.getRange(6, 2).setValue(i);
您还可以考虑使用while
循环:
var i = 1;
while (num2 < num1){
num2++;
ss.getRange(4, 10).setValue(num2);
activeSheet.getRange(6, 2).setValue(i);
i++;
}
您也可以将 setvalue 放在循环之外,在num2
和之后num1
。
推荐阅读
- python - 使用模板从查询集中获取所有值
- php - 在本地主机上使用 xampp 发送电子邮件时出现问题
- github - 如何将 azure cli 命令的输出添加到 github 操作
- javascript - d3垂直堆叠条形图顶部的文本
- c++ - Qt-帮助创建 Qt Designer 自定义小部件插件,如 QTabWidget
- excel-formula - 如何通过从 A 列中选择多个不同的值来对 B 列的值求和?
- sql - 计算最近 10 条记录 postgresql 的 avg(value)
- eclipse - 将工具链添加到 Eclipse
- database - 分布式数据库中分布的是什么?
- testing - Tosca 谜题 94441 用 RBFW 解决,测试方法) - 无法转换为 SelectAttribute