2015-11-03 209 views
0

我知道這看起來很熟悉,但我已經盡我所能去尋找答案。 我試圖從一個文件的工作表中簡單地提取一個單元格到另一個文件中的另一個工作表。這裏我到目前爲止:複製電子表格的一個小區到另一個電子表格

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上?

回答

0

你只想要的是將數據從一個表複製到另一個表?並把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

0

問題是,它是從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

相關問題