2016-02-02 99 views
0

使用Google應用程序腳本我試圖用一張紙上的數據自動填充多張紙張。自動使用一張紙上的數據填充多張相同紙張

我使用兩個Spreadsheets,「主」電子表格包含需要自動填充到其他電子表格中的數據。

另一個電子表格包含根據「主」表中的條目數重複多次的模板表,這是數據需要去的地方。

到目前爲止,我已經設法複製了基於主控的模板表的數量並在之後刪除它們(請參閱代碼),但我無法找到有關如何自動填充這些表單的任何信息。該模板根據列中公司的數量進行復制,模板表以這些公司的名稱命名。

function onOpen() { 

var ss = SpreadsheetApp.getActiveSpreadsheet(); 
var menuEntries = [{name: "Produce Conformance Logs (From Current Sheet)", functionName: "Produce"}, 
{name: "Delete Old Conformance Logs", functionName: "delSheets"} 
]; 
ss.addMenu("Conformance Logs", menuEntries); 
} 




function Produce() { 
var ss = SpreadsheetApp.getActiveSpreadsheet(); 
var sh = ss.getActiveSheet(); 
var ui = SpreadsheetApp.getUi(); 

var eRange = sh.getRange("R9:R").getValues() 
var eLength = eRange.filter(String).length; 


var rData = sh.getRange(9, 18,eLength, 1).getValues(); // This is the data with the company names 

var conformanceSSheet = SpreadsheetApp.openById("1eMQv7muCHzKiyFxIlsdfgsdfgNpxovHiEINNZNtPUlEElIFs5ws"); 
var conformanceTemplate = conformanceSSheet.getSheetByName("Template"); 

var result = ui.alert(   //title, prompt, buttons) 
'Please confirm','Are you sure you want to produce Conformance Logs ?', ui.ButtonSet.YES_NO); 

if(result == ui.Button.YES){ 

for (i=rData.length-1;i>0;--i) 
conformanceTemplate.copyTo(conformanceSSheet).setName(rData[i]); 
} 

} 

自動填充代碼去這裏

function delSheets() { 

var ss = SpreadsheetApp.openById("1eMQv7muCHzKiyFxIlNpxovHiEsdfgsdgINNZNtPUlEElIFs5ws"); 
var sheetsCount = ss.getNumSheets(); 
var sheets = ss.getSheets(); 
var ui = SpreadsheetApp.getUi(); 

var deleteSheetsContaining = "Template" 
for (var i = 0; i < sheetsCount; i++){ 
var sheet = sheets[i]; 
var sheetName = sheet.getName(); 
Logger.log(sheetName); 

if (sheetName.indexOf(deleteSheetsContaining.toString()) === -1){ 
Logger.log("DELETE!"); 
ss.deleteSheet(sheet); 
} 
} 
} 

例如,在所有被複制的表我試圖要填充的我剛纔在RDATA變量所標識的公司名稱的小區F7。是否有可能爲每張工作表填入一個公司名稱?

感謝您的幫助!

回答

0

//試着看看你是否可以編輯它使它適用於你;

function archive() 
    {var sheetNameToWatch = "XXXXX"; 
    var sheetNameToMoveTheRowTo = "YYYYYY"; 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = ss.getSheets()[10]; 
    var range = sheet.getRange("C4:K5"); 
    { 
    var targetSheet = ss.getSheetByName(sheetNameToMoveTheRowTo); 
    var targetRange = targetSheet.getRange(targetSheet.getLastRow() +1,1); 
    sheet.getRange(range.getRow(), 1, 1, sheet.getLastColumn()).copyTo(targetRange,{contentsOnly:true});} 
相關問題