2011-08-22 9 views
1

OKだから、私がやりたいことは比較的複雑だと思う。現時点では、参加者が記入できる書式があります。フォームが送信されるたびにスプレッドシート内に新しいシートが作成されるたびに、IF関数に似た何かの情報が渡され、YesおよびNoの答えが1と0に変更されることを意味するスクリプトが実装されています。Google Apps Script - Googleフォームデータから生成されたスプレッドシートに列(inc数式と書式設定)を追加する方法

//onFormSubmit 
function onFormSubmit(){ 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = ss.getSheetByName("Form Responses"); 
    var headings = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues(); 
    var lastRow = sheet.getRange(sheet.getLastRow(), 1, 1, sheet.getLastColumn()).getValues(); 
    var whoIsItFor = lastRow[0][1]; 

if(ss.getSheetByName(whoIsItFor)) 
{ 
var userSheet = ss.getSheetByName(whoIsItFor); 
//if not make 
} 
else 
{ 
var userSheet = ss.insertSheet(whoIsItFor); 
userSheet.getRange(1, 1, 1, headings[0].length).setValues(headings); 
} 

// copy submitted data to user's sheet 
userSheet.getRange(userSheet.getLastRow()+1, 1, 1, lastRow[0].length).setValues(lastRow); 


var columns = new Array('K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG', 'AH', 'AI', 'AJ', 'AK', 'AL', 'AM', 'AN', 'AO', 'AP', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AV', 'AW', 'AX', 'AY', 'AZ', 'BA', 'BB', 'BC', 'BD', 'BE', 'BF', 'BG', 'BH', 'BI', 'BJ', 'BK', 'BL', 'BM', 'BN', 'BO', 'BP', 'BQ', 'BR', 'BS', 'BT', 'BU', 'BV', 'BW', 'BX', 'BY', 'BZ', 'CA', 'CB', 'CC', 'CD', 'CE', 'CF', 'CG', 'CH', 'CI', 'CJ', 'CK', 'CL', 'CM'); 

for (var i = 0; i < columns.length; ++i) 
{ 

c = columns[i] + "2"; 

if (userSheet.getRange(c).getValue() == "Yes") { 
    userSheet.getRange(c).setValue("1") 
} 
else { 
    userSheet.getRange(c).setValue("0") 
} 

} 



} 

次に、次の段階を実装します。私の現在のスクリプトが生成するシートにさまざまな数式と書式を追加する別のシートと、そのシートの特定の列に式を含むデータが挿入された場合に起こりたいこと。私は元のスクリプトが新しいシートを生成するたびにこれが起こるようにしたい。さまざまな数式と書式を含むシートは、同じスプレッドシートに含まれています。

私は

それは(と私は間違っている可能性が)あなたは真の虚偽の質問の形を持っているように聞こえる
+0

ご要望は私にはあまり明確ではありません。あなたは2つのシートを一緒にマージする方法を尋ねていますか?もしそうなら、このマージのルールは何でしょうか? –

答えて

1

は、各フォームの送信がにデータを移動し、事前にどうもありがとうございました.....これが理にかなって願っています新しいシートを作成し、今ではすべての機能と書式を1つの「マスターシート」から移動し、この新しく作成したシートに挿入したいと考えています。

この「マスターシート」のコピーを作成して、関数と書式をインポートすることはできませんでしたか?次に、フォームからデータを入力することができます。

https://developers.google.com/apps-script/service_spreadsheet

私は前にこれを試していないので、私はまっすぐに彼らのAPIのオフつもりですが、基本的に、私はあなたの質問を解釈する場合は、この

//make the new sheet 
masterSheet.copyTo("nameOfNewSheet"); 
//fill data in as usual 

のような新しいシートを作成したいです正しく私に知らせてください。

関連する問題