复制电子表格的一个小区到另一个电子表格

问题描述:

我知道这看起来很熟悉,但我已经尽我所能去寻找答案。 我试图从一个文件的工作表中简单地提取一个单元格到另一个文件中的另一个工作表。这里我到目前为止:复制电子表格的一个小区到另一个电子表格

var sss =  SpreadsheetApp.openById("1mUEV_fVf1eP3iBQImkSzf598r8d5wGSRhqLteS9iQaM"); 
var ss = sss.getSheetByName("Sheet1"); 
var tss = SpreadsheetApp.openById("1qGBfc__YkOJNqcH0eWLbZW9pnTS6fqXRHnHRDMTkmIw"); 
var ts = tss.getSheetByName("mysheet"); 

var SRange = ss.getRange('H27'); 
var A1Range = SRange.getA1Notation(); 
var SData = SRange.getValues(); 
ts.clear({contentsOnly: true}); 
ts.getRange(A1Range).setValues(SData); 

问题是它是从H27复制数据到其他H27。我试图从Sheet1的H27中复制数据并将它放在mysheet的AZ49上?

你只想要的是将数据从一个表复制到另一个表?并把H27的价值放在AZ49 ?,这张表是在一张电子表格上?你可以试试这个,

var ss = SpreadsheetApp.getActiveSpreadsheet(); 
var st1 = ss.getSheetByName("Sheet1"); 
var myst = ss.getSheetByName("mysheet"); 

var SRange = st1.getRange('H27').getValues(); 
var SData = myst.getRange('AZ49').setValues(SRange); 
+0

它只是,非常感谢最大。我非常担心你的债务。我另外添加了你的最后两行和我以前的代码。有用! – Hamza

问题是,它是从H27将数据复制到其他H27。

那是因为你开始与假设你想匹配的源和目标表细胞,并且做了代码,这些指示:

var A1Range = SRange.getA1Notation(); // Get text describing source range 
... 
ts.getRange(A1Range)...     // Get same range on dest sheet 

我试图复制数据从Sheet1的H27开始并将其放在AZ49的表格中

然后,您只需要更改A1Range的设置。

var A1Range = 'AZ49'; 

既然你现在处理的是单细胞的范围内,你只需要处理一个单一的数据值,而不是在它只是一个项目一个二维数组。与getValue()setValues()setValue()更换getValues()。该clear()方法是没有意义的,因为你马上写一个新值进入细胞内,因此它可以被删除。

这也解释和解决您的问题。还有一件事,我鼓励你更加小心你的变量名,以便它们有助于理解你的代码。例如,由于SRange初始化,名称是混乱; SValue会更清晰。

var SRange = ss.getRange('H27'); 
var DRangeA1 = 'AZ49'; 
var SValue = SRange.getValue(); 
ts.getRange(DRangeA1).setValue(SValue); 
+0

谢谢,我得到你指出的东西。另外,我同意SRange名称听起来含糊不清。 – Hamza