डेटा स्क्रिप्ट कॉपी करना अब काम नहीं कर रहा है

Nov 25 2020

मैं अपनी Google शीट में एक स्क्रिप्ट का उपयोग कर रहा हूं जो मुझे यहां मिली:

Google ऐप स्क्रिप्ट में एक शीट से दूसरी शीट पर डेटा कॉपी करें और एक पंक्ति, एक छोटी सी समस्या को जोड़ दें

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var copySheet = ss.getSheetByName("Copy");
  var pasteSheet = ss.getSheetByName("Paste");

  // get source range
  var source = copySheet.getRange(2,2,12,2);
  // get destination range
  var destination = pasteSheet.getRange(pasteSheet.getLastRow()+1,2,12,2);

  // copy values to destination range
  source.copyTo(destination);

  // clear source values
  source.clearContent();
}

जब मैं इसे चला रहा हूं तो यह मुझे एक त्रुटि देता है:

लक्ष्य श्रेणी के निर्देशांक शीट के आयामों के बाहर हैं।

जो पहले नहीं आ रहा था। क्या किसी को अंदाजा है कि वह ऐसा क्यों कर रहा है?

जवाब

1 Marios Nov 25 2020 at 18:31

मुद्दा:

इस पंक्ति में त्रुटि है:

var destination = pasteSheet.getRange(pasteSheet.getLastRow()+1,2,12,2);

pasteSheet.getLastRow()एक पंक्ति संख्या देता है जो आपकी शीट के बहुत नीचे है। फिर आप 12पंक्तियों की सीमा पर विचार करते हैं लेकिन सामग्री के साथ अंतिम पंक्ति के बाद पंक्तियाँ pasteSheetनहीं होती हैं ।12

समाधान:

इसमें और पंक्तियाँ जोड़ें pasteSheet:

या आप आवेषण का उपयोग कर सकते हैं। बाद में :

pasteSheet.insertRowsAfter(pasteSheet.getLastRow(), 12)

सांकेतिक टुकड़ा:

function myFunction() {
   var ss = SpreadsheetApp.getActiveSpreadsheet();
  var copySheet = ss.getSheetByName("Copy");
  var pasteSheet = ss.getSheetByName("Paste");

  // get source range
  var source = copySheet.getRange(2,2,12,2);
  // insert rows to make sure you have enough space
  pasteSheet.insertRowsAfter(pasteSheet.getLastRow(), 12)
  // get destination range
  var destination = pasteSheet.getRange(pasteSheet.getLastRow()+1,2,12,2);
   
  // copy values to destination range
  source.copyTo(destination);

  // clear source values
  source.clearContent();
}