2017-04-15 7 views
2

問題がある、私は最後の空の行を見つけて次の番号(n + 1)を追加するGoogleスプレッドシートのボタンを作成する方法を知らない第2列の実際の日付に表示されます。最後の空の行に値(n + 1)を追加する

function selectFirstEmptyRow() { 
    var sheet = SpreadsheetApp.getActiveSpreadsheet(); 
    sheet.setActiveSelection(sheet.getRange("A" + getFirstEmptyRowWholeRow())) 
    // copy value from row 
    var ss = SpreadsheetApp.getActiveSheet(); 

    ss.insertRowAfter(ss.getLastRow()); 
    ss.getRange(1, 1).copyTo(ss.getRange(ss.getLastRow() + 1, 1)); 

    // add 1 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var activeRange = ss.getActiveRange(); 
    var cell, cellValue, cellFormula; 

    // iterate through all cells in the active range 
    for (var cellRow = 1; cellRow <= activeRange.getHeight(); cellRow++) { 
    for (var cellColumn = 1; cellColumn <= activeRange.getWidth(); cellColumn++) { 
     cell = activeRange.getCell(cellRow, cellColumn); 
     cellFormula = cell.getFormula(); 

     if (cellFormula[0] != "=") { 
     cellValue = cell.getValue(); 
     cell.setValue(cellValue + 1); 
     } 
    } 
    } 
} 

function getFirstEmptyRowWholeRow() { 
    var sheet = SpreadsheetApp.getActiveSheet(); 
    var range = sheet.getDataRange(); 
    var values = range.getValues(); 
    var row = 3; 
    for (var row = 3; row < values.length; row++) { 
    if (!values[row].join("")) break; 
    } 
    return (row + 1); 
} 
+0

の可能性の重複[アプリスクリプトを使用してGoogleスプレッドシートのセル内にUIを追加する方法は?](h ttp://stackoverflow.com/questions/6876819/how-do-you-add-ui-inside-cells-in-a-google-spreadsheet-using-app-script) –

+0

ありがとうございます、私の主な問題次の空の行に数字と日付を追加する方法でした。私は間違って質問をしました。よろしく。 –

答えて

0

は、Googleスプレッドシートにカスタムメニューを追加することができます。ここでは

function onOpen() { 
    var ui = SpreadsheetApp.getUi(); 
    ui.createMenu('My menu') 
     .addItem('Add new date row', 'insertAtNextEmptyRow') 
     .addToUi(); 
} 

function insertAtNextEmptyRow() { 
    var firstRow = 3; 

    var sheet = SpreadsheetApp.getActiveSheet(); 
    var row = getNextEmptyRow(firstRow); 
    var previousNum = SpreadsheetApp.getActiveSheet().getRange('A' + (row - 1)).getValue() 
    if (previousNum !== parseInt(previousNum, 10)) 
    previousNum = row - firstRow - 1; 
    SpreadsheetApp.getActiveSheet().getRange('A' + row).setValue(previousNum + 1); 
    var date = Utilities.formatDate(new Date(), "GMT", "yyyy-MM-dd"); 
    SpreadsheetApp.getActiveSheet().getRange('B' + row).setValue(date); 
} 

function getNextEmptyRow(firstRow) { 
    var sheet = SpreadsheetApp.getActiveSheet(); 
    var range = sheet.getDataRange(); 
    var values = range.getValues(); 

    for (var row = firstRow; row < values.length; row++) { 
    if (!values[row].join("")) 
     return (row + 1); 
    } 
    return null; 
} 

は、それがどのように見えるだろうものです:

enter image description here

+0

私はいくつかのことを変更し、それは私が欲しいと働く、助けてくれてありがとう。 よろしく –

関連する問題