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
}
}
参考资料:
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
}
}