Google sheets Google Sheets错误:参数(字符串)don';t与SpreadsheetApp.Sheet.getActiveCell的方法签名不匹配

Google sheets Google Sheets错误:参数(字符串)don';t与SpreadsheetApp.Sheet.getActiveCell的方法签名不匹配,google-sheets,google-sheets-formula,google-sheets-api,Google Sheets,Google Sheets Formula,Google Sheets Api,如果每张工作表中有两组数据相对应(本例中的日期),则尝试将数据从一张工作表移动到另一张工作表。我不断得到以下错误: Exception: The parameters (String) don't match the method signature for SpreadsheetApp.Sheet.getActiveRange 我看到一些事情表明我可能没有从我命名的表中完成,或者它完成了错误的值?不确定,任何建议都会很好 代码: 函数pullData(){ var ss=Spreadshee

如果每张工作表中有两组数据相对应(本例中的日期),则尝试将数据从一张工作表移动到另一张工作表。我不断得到以下错误:

Exception: The parameters (String) don't match the method signature for SpreadsheetApp.Sheet.getActiveRange
我看到一些事情表明我可能没有从我命名的表中完成,或者它完成了错误的值?不确定,任何建议都会很好

代码:

函数pullData(){
var ss=SpreadsheetApp.getActiveSpreadsheet()
var inputSheet=ss.getSheetByName(“输入”);
var currentSheet=ss.getActiveSheet();
var dateCell=inputSheet.getActiveCell(“C2”).getValue();
var inputRange=inputSheet.getActiveRange(“C6:Z999”);
var currentRange=currentSheet.getActiveRange(“C6:Z999”);
如果(dateCell==currentSheet.getActiveCell(“B2”).getValue()){
var inputRows=inputRange.getNumRows();
var inputCols=inputRange.getNumColumns();
对于(var i=1;i
  • 当工作表
    Input
    的单元格“C2”的值与活动工作表的单元格“B2”的值相同时,您希望将工作表
    Input
    的单元格“C6:Z999”的值复制到活动工作表的单元格“C6:Z999”
  • 您想知道以下错误消息的原因。
    • 异常:参数(字符串)与SpreadsheetApp.Sheet.getActiveRange的方法签名不匹配
修改点:
  • getActiveRange()
    没有参数。但是您使用了参数。我认为错误消息的原因如下
  • 另外,
    getActiveCell()
    没有参数。因此,在您的脚本中,我认为在
    var dateCell=inputSheet.getActiveCell(“C2”).getValue();
    处发生了错误。从这种情况来看,我认为您测试的脚本可能与您问题中的脚本不同
  • 当我看到你剧本的流程时,我想你的目标可能如下。
    • 当工作表
      Input
      的单元格“C2”的值与活动工作表的单元格“B2”的值相同时,您希望将工作表
      Input
      的单元格“C6:Z999”的值复制到活动工作表的单元格“C6:Z999”
    • 如果我的理解是正确的,
      getActiveCell(“C2”)
      getActiveRange(“C6:Z999”)
      getActiveCell(“B2”)
      可能分别是
      getRange(“C2”)
      getRange(“C6:Z999”)和
      getRange(“B2”)
模式1: 在此模式中,您的脚本将被修改以删除错误消息

修改脚本: 请按如下方式修改您的脚本

发件人: 致: 模式2: 在此模式中,通过降低进程成本来修改脚本
用于for循环。在这种情况下,当
inputRows
inputCols
较大时,处理成本将很高。因此,在这种模式下,我建议降低成本

修改脚本: 请按如下方式修改脚本。在此修改中,使用
copyTo
将工作表
Input
的单元格“C6:Z999”的值复制到活动工作表的单元格“C6:Z999”。这样,就可以实现您的目标,而无需使用for循环

function pullData(){
  var ss = SpreadsheetApp.getActiveSpreadsheet()
  var inputSheet = ss.getSheetByName("Input");
  var currentSheet = ss.getActiveSheet();
  var dateCell = inputSheet.getRange("C2").getValue();
  var inputRange = inputSheet.getRange("C6:Z9");
  var currentRange = currentSheet.getRange("C6:Z9");

  if (dateCell == currentSheet.getRange("B2").getValue()){
    inputRange.copyTo(currentRange, {contentsOnly:true});  // Modified
  }
}
参考资料:

我的回答是否向您展示了您想要的结果?请告诉我有关情况?这对我的学习也很有用。如果这样做有效,与您有相同问题的其他人也可以将您的问题作为可以解决的问题。如果您对我的回答有疑问,请随时告诉我。我想学习解决您的issues。不幸的是,我没有这样做,因为我完全改变了我对函数的处理方式,并创建了一个全新的解决方案,再也没有遇到过此错误,因此不知道是什么导致了此错误。很抱歉,此问题对其他人没有多大帮助。感谢您的回复。我可以理解您的情况。
var dateCell = inputSheet.getRange("C2").getValue();
var inputRange = inputSheet.getRange("C6:Z9");
var currentRange = currentSheet.getRange("C6:Z9");

if (dateCell == currentSheet.getRange("B2").getValue()){
function pullData(){
  var ss = SpreadsheetApp.getActiveSpreadsheet()
  var inputSheet = ss.getSheetByName("Input");
  var currentSheet = ss.getActiveSheet();
  var dateCell = inputSheet.getRange("C2").getValue();
  var inputRange = inputSheet.getRange("C6:Z9");
  var currentRange = currentSheet.getRange("C6:Z9");

  if (dateCell == currentSheet.getRange("B2").getValue()){
    inputRange.copyTo(currentRange, {contentsOnly:true});  // Modified
  }
}