2013-03-04 63 views
0

我在Google Docs中運行項目,我需要腳本幫助。我需要一個將在兩列電子表格中執行以下任務的人員。爲Google文檔添加行,移動數據和添加字符的腳本電子表格

  1. 在每個現有數據行之間插入一個新的空白行。
  2. Shift鍵在第二列中的數據向下一個地方,讓他們佔據新插入的空白行
  3. 添加大括號{}的文本第二列anytext的數據 - > {anytext }

這裏是它是如何工作的一個例子:Sample GDocs spreadsheet

回答

1

你的問題是從以前的一個,我只是想回答,所以我雖然我可以繼續不遠處,並提出工作解決方案(eas y)問題... 所以它就是這樣,不是最優雅,但容易和工作。

function insertBlank() { 
    var sh = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet() 
    var last = lastRowinCol(sh,'A'); 
    var colA = sh.getRange('A1:A'+last).getValues(); 
    var colB = sh.getRange('B1:B'+last).getValues(); 
    var nA = []; 
    var nB = []; 
    for(n=0;n<last;++n){ 
    nA.push([colA[n]]) 
    nA.push(['']); 
    nB.push(['']) 
    nB.push(['{'+colB[n][0]+'}']); 
    } 
    Logger.log(nA.length+' = '+nA) 
    Logger.log(nB.length+' = '+nB) 
    sh.getRange(1,1,nA.length,1).setValues(nA); 
    sh.getRange(1,2,nB.length,1).setValues(nB); 
} 

function lastRowinCol(sh,col){ 
    var coldata = sh.getRange(col+'1:'+col).getValues(); 
    for(var c in coldata){if(coldata[c][0]==''){break}} 
    return c 
    } 

這就是說,你最好問你對未來STO嘗試過讓您購物免費;-)


編輯更合適的問題,並顯示:下一個非常中肯的comment from Mogsdad on this other post我建議你用function lastRowinCol中的for-next循環替換它的向後迭代的代碼,以便處理列中的空單元格。此外,他的代碼有一個有趣的結構,因爲循環限制和條件都在同一個語句中。

function lastRowinCol(sh,col){ 
    var coldata = sh.getRange(col+'1:'+col).getValues(); 
    for (var c=coldata.length; (c) && coldata[c-1][0]==''; c--) {} 
    return c 
} 
+0

感謝您提供此腳本。我不得不說,我給人的印象是我自由購物感覺不好。在我的辯護中,讓我說我不是程序員,我只是尋求幫助來完成我一直在努力一段時間的知識共享數據庫項目。請接受我的道歉,並讓我再次感謝你。 – user2132792 2013-03-04 18:27:33

+0

不用擔心,你不需要道歉,但你知道這個論壇的規則,你知道你並不完全關注他們,但對我來說沒關係。如果腳本滿足你,請考慮接受答案。順便說一句,我也不是程序員,我只是通過練習和問/答在這裏和那裏學到了很多......我只是喜歡它;-) – 2013-03-04 19:16:31

相關問題