Google sheets 将数据从一个单元格复制到另一个单元格-Google脚本

Google sheets 将数据从一个单元格复制到另一个单元格-Google脚本,google-sheets,Google Sheets,我在使用谷歌脚本将谷歌电子表格中的数据从一个单元格复制到另一个单元格时遇到问题。我可以得到我想要的单元格的值,但我无法将其复制到其他单元格。这是我的密码 var sourceSS = SpreadsheetApp.openById(logKey); var value = sourceSS.getSheetByName(sourceSheetName).getRange(sourceCell).getValue(); var logSS = SpreadsheetApp.openById(log

我在使用谷歌脚本将谷歌电子表格中的数据从一个单元格复制到另一个单元格时遇到问题。我可以得到我想要的单元格的值,但我无法将其复制到其他单元格。这是我的密码

var sourceSS = SpreadsheetApp.openById(logKey);
var value = sourceSS.getSheetByName(sourceSheetName).getRange(sourceCell).getValue();
var logSS = SpreadsheetApp.openById(logKey);
var sheet = logSS.getSheetByName(logSheetName);
logSS.getSheetByName(logSheetName).getRange(logCell).setValue(value);
我现在更改了代码,如下图所示,并出现了错误。 更新(6-2-17)

如果您在同一个电子表格中登录,则以下代码可能有效:

var ss = SpreadsheetApp.openById(logKey);
var value = ss.getSheetByName(sourceSheetName).getRange(sourceCell).getValue();
ss.getSheetByName(logSheetName).getRange(logCell).setValue(value);


首先,您是否意识到您对记录器和源电子表格都使用了两次logKey?在这两种情况下(第1行和第3行),您都有:SpreadsheetApp.openById(logKey),打开相同的电子表格

我制作了两个电子表格并运行了您的代码,切换了参考变量:

function myFunction() {
  var sourceSS = SpreadsheetApp.openById("wefdf5y65t45tO45tWy544f8hc10kdjEfgrrf4H-f48u");
  var value = sourceSS.getSheetByName("SourceSheet").getRange("A1").getValue();
  var logSS = SpreadsheetApp.openById("f4h738H9GH07ghTf5rtfYtrf4h67566dytrdhe478293");
  var sheet = logSS.getSheetByName("Sheet1");
  logSS.getSheetByName("Sheet1").getRange("A1").setValue(value);
}
它运行良好,并正确地填充到日志电子表格中,因此这意味着以下变量之一在您的代码中处于禁用状态(我看不出您是如何声明它们的):

  • 日志键
  • sourceSheetName
  • 源电池
  • 日志表名称
  • 对数细胞

我得到了错误消息:TypeError:无法调用null的方法“getRange”

  • 同样,当我弄乱上面的变量,特别是sourceSheetName时,就会发生这种情况。例如,如果我将该变量设置为“SourceShe”而不是“SourceSheet”,那么GoogleSheets将找不到该变量,并且该变量为null

我认为您所有的问题都是因为在事先声明变量时出现了一些拼写错误。

感谢Augustine的帮助。我在打开电子表格中的正确表格时遇到问题。以下是我的解决方案:

var ss = SpreadsheetApp.openById(logKey);
var value = ss.getSheetByName(sourceSheetName).getRange(sourceCell).getValue();
ss.getSheetByName(logSheetName).getRange(logCell).setValue(value);

关键是验证我是否有正确的变量名,并且我没有尝试两次打开同一个电子表格。

此外,在调试代码时,我似乎能够填充对象日志,但变量表似乎为空。IDK为什么这不起作用,因为我可以在第二行代码中这样做。此外,我收到错误消息:TypeError:无法调用null的方法“getRange”。我正在尝试访问同一个电子表格,但在同一个电子表格中有不同的工作表…啊,好的,那么您只需要打开电子表格一次。电子表格是整个文档(所有工作表),“工作表”是电子表格中的特定选项卡。我将更新并编写一些代码,使其更清晰。谢谢您的帮助。我确实试过了,但还是没能成功。我在帖子中添加了更多的错误截图,谢谢你的帮助。我是个白痴。它从一开始就对我有效。我把它保存在我想要的正确的表格中,但我在错误的表格中查找数据#尴尬