2017-05-03 79 views
0

在這裏苦苦掙扎的初學者,試圖讓我的腳本完成,我現在只是迷失了。讓我先發布我的腳本。用If/Else腳本掙扎

function dailyclear(e) 
{ 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = ss.getSheetByName('Today'); 

    sheet.copyTo(ss) 
    var nusheet = ss.getSheetByName('Copy of Today') 
    var value = nusheet.getRange("B2").getCell(1,1).getValue() 
    SpreadsheetApp.setActiveSheet(nusheet) 

    Logger.log("Current index of sheet: %s", nusheet.getIndex()) 
    ss.moveActiveSheet(2); 
    nusheet.setName(value); 

    //Clear "Today" 
    var lastrow = sheet.getLastRow() 
    sheet.deleteRows(8, lastrow-7) 

    //Set Date Value for "Today" 
    var dd = Utilities.formatDate(new Date(), "GMT-5", "MM/dd/yy"); 
    sheet.getRange("B2").getCell(1,1).setValue(dd); 
} 

我想要什麼我的腳本做的是前//清除行有一個是這樣的if/else語句...「如果在A8然後運行sheet.deleterows(任何文本8, lastrow-7),否則跳到設置日期。「我希望這是有道理的。基本上我想刪除除前7以外的所有行,如果在A8中輸入了任何數據,則不要嘗試刪除任何內容,因爲它只會對我造成錯誤並鎖定。

我一直想通過在網上閱讀並自己投入毛巾來自己想象這些。任何幫助,將不勝感激。鏈接到我的工作表是https://docs.google.com/spreadsheets/d/1NZxXjMptx6ldzL2CKk6OwJcq_heIv995ZGVeIE59xNc/edit?usp=sharing

感謝您提供的一切和一切!

+0

當代碼給出了一個錯誤,看看「執行成績單」,它會國行發生了什麼錯誤的,什麼錯誤信息是。我發現你正在獲得一個範圍和一個值,但我沒有看到代碼在A8中獲得的值。您不需要從lastRow中減去7:'lastrow-7'您指定的起始行爲8.這將使前7行保留在頂部。 –

+0

我可能並不清楚,但我已經刪除了If/Else/Then的所有代碼證據。我希望有人能告訴我一個它如何工作的例子,我所做的沒有任何工作,所以我只是拋棄了它。 –

+0

無論代碼的其他部分如何工作,您都需要從A8中獲取值。 'var testValueFromA8 = sheet.getRange(「A8」)。getValue();'你不需要getCell(1,1)'在var var = nusheet.getRange(「B2」)。 ,1).getValue()'因爲該行只能獲取B2中的一個數據單元。 A8應該來自'今日'還是'今日副本'? –

回答

1

我想這就是你要找達到的目標:

function dailyclear() { 

    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var ui = SpreadsheetApp.getUi(); 
    var sheet = ss.getSheetByName('Today'); 
    var getB2 = sheet.getRange("B2").getValue(); 

    sheet.copyTo(ss).setName(getB2); 

    var nusheet = ss.getSheetByName(getB2); 

    Logger.log("Current index of sheet: %s", nusheet.getIndex()); 
    ss.setActiveSheet(nusheet); 
    ss.moveActiveSheet(2); 

    var getA8 = sheet.getRange('A8').getValue(); 

    if (getA8) { 

     var numRows = sheet.getMaxRows(); 

     if (numRows > 8) { 
      sheet.deleteRows(8, numRows - 8); 
     } else { 
      sheet.deleteRow(8); 
     } 

    } else { 

     var newDate = Utilities.formatDate(new Date(), "GMT-5", "MM/dd/yy"); 
     sheet.getRange("B2").setValue(newDate); 
    } 
}