javascript - Google Script将值从一张纸返回到另一张纸
问题描述
这是我的第一个 Google 脚本,我在尝试将特定单元格和工作表中的值恢复到另一个工作表时有点挣扎。
我总共有 18 列,第一列是 ID,这将是用户需要添加的输入,以便从一张纸检索数据到另一张纸。由于第一个是 ID,并且已经由用户输入,我需要从第 2 列到第 18 列检索数据这是我的代码:
function SearchID() {
var columnIndex = 0;
var ss = SpreadsheetApp.getActiveSpreadsheet();
var formS = ss.getSheetByName("Manual Costs App"); // App sheet
var str = formS.getRange("D6").getValue(); // The ID to search will be inputted here
var dataS = ss.getSheetByName("Inputs").getDataRange().getValues(); // Retrieving the data based on the user input
for (var i = 0; i<=dataS.length; i++) {
var row = dataS[i];
if (row[columnIndex] == str) {
formS.getRange("D9").setValue(row[1]);
formS.getRange("D13").setValue(row[2]);
formS.getRange("D14").setValue(row[3]);
formS.getRange("D15").setValue(row[4]);
formS.getRange("D16").setValue(row[5]);
formS.getRange("D18").setValue(row[6]);
formS.getRange("D19").setValue(row[7]);
formS.getRange("D20").setValue(row[8]);
formS.getRange("D21").setValue(row[9]);
formS.getRange("D22").setValue(row[10]);
formS.getRange("D23").setValue(row[11]);
formS.getRange("D25").setValue(row[12]);
formS.getRange("D26").setValue(row[13]);
formS.getRange("D27").setValue(row[14]);
formS.getRange("D28").setValue(row[15]);
formS.getRange("D29").setValue(row[16]);
formS.getRange("D30").setValue(row[17]);
break;
}
}
}
我正在构建的示例电子表格的链接在这里
更新:现在一切都修复了!我所做的是删除 for 循环中的空间。之后,它检索了数据,但是一个TypeError: Cannot read property '0'
. 还解决了它break
在循环后添加一个以避免它。
解决方案
用户确实找到了答案并在问题上进行了更新。
在这里作为社区 wiki 发布,以便更清楚地看到它。
用户回答:
更新:现在一切都修复了!我所做的是删除 for 循环中的空间。之后,它检索了数据,但出现了 TypeError:无法读取属性“0”。还解决了它在循环后添加一个中断以避免它。
function SearchID() {
var columnIndex = 0;
var ss = SpreadsheetApp.getActiveSpreadsheet();
var formS = ss.getSheetByName("Manual Costs App"); // App sheet
var str = formS.getRange("D6").getValue(); // The ID to search will be inputted here
var dataS = ss.getSheetByName("Inputs").getDataRange().getValues(); // Retrieving the data based on the user input
for (var i = 0; i<=dataS.length; i++) {
var row = dataS[i];
if (row[columnIndex] == str) {
formS.getRange("D9").setValue(row[1]);
formS.getRange("D13").setValue(row[2]);
formS.getRange("D14").setValue(row[3]);
formS.getRange("D15").setValue(row[4]);
formS.getRange("D16").setValue(row[5]);
formS.getRange("D18").setValue(row[6]);
formS.getRange("D19").setValue(row[7]);
formS.getRange("D20").setValue(row[8]);
formS.getRange("D21").setValue(row[9]);
formS.getRange("D22").setValue(row[10]);
formS.getRange("D23").setValue(row[11]);
formS.getRange("D25").setValue(row[12]);
formS.getRange("D26").setValue(row[13]);
formS.getRange("D27").setValue(row[14]);
formS.getRange("D28").setValue(row[15]);
formS.getRange("D29").setValue(row[16]);
formS.getRange("D30").setValue(row[17]);
break;
}
}
}
推荐阅读
- vba - 如何使用excel宏打印pdf文件
- c++ - 什么是矢量
a(b) 意思是,在 C++ 中? - python - 修复类的参数
- python - Python网页抓取打开新标签
- angular - web-animations-js 在 IE 9 SCRIPT5007 中给出错误:预期对象;网络动画.min.js (15,23868)
- oracle - 使用 SQL*Plus 运行具有多个命令提示符会话的多个脚本
- c# - 如何在事件发生后使用 Caliburn 默认检查方法?
- python - 使用 Jinja PrefixLoader 加载的模板内的相对路径导入
- oracle-maf - Oracle MAF 2.5.1 默认应用程序左上角奇怪的红色图标
- javascript - 如何使用 Angular 管道过滤掉空值?