2016-03-08 27 views
0

我是新來的編碼,我想你在開發谷歌表一個簡單的腳本幫助。當我按下「START」按鈕時,當前時間自動插入HH:MM:SS列中下一個可用的空單元格中,我想要做的是(參見示例img以獲得更好的想法)。所以每次我按下按鈕一個新的當前時間戳獲取下一個空單元格添加A列時的「STOP」按鈕,將工作完全一樣只是因爲這會在列B腳本建議在谷歌片插入時的時間戳按鈕被按下

我有信息發現了Visual Basic的一個代碼,那些我想在Excel中做的事情,我只是不知道如何做到這一點就是Google Sheets。 Visual Basic for Excel中「開始」按鈕的代碼如下:

Sub StartTime() 
    nr = ThisWorkbook.Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUP).Row + 1 
    Cells(nr, 1) = Time 
End Sub 

我非常感謝您的幫助,謝謝!

Example

+1

如果你有代碼,它張貼在這裏。將它發佈到其他地方對於那些可能幫助的人是不方便的,而且有些人根本無法訪問你的鏈接。你可以通過創建一個日期和一個小功能開始使用*調用getHours格式化部分時間*,* getMinutes *等 – RobG

+0

謝謝你的建議,我發現了一個代碼,VBA這不正是我要在Excel做。我只想知道如何在Google表格中執行此操作。我已經添加了代碼,以便您可以看到。 –

+0

請參閱[使用Google Apps腳本擴展Google文檔,表格和表單](https://support.google.com/docs/answer/2942256?hl=zh-CN)。 –

回答

2

這種簡單的解決方案假定開始停止時間的列表將永遠是最遠的在該表(或理想的唯一的東西)的一切了。
如果不是你需要改變它找到你插入數據時需要的範圍內的最後一排的情況下..

var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1"); 

function startTime() { 
    ss.getRange(ss.getLastRow() + 1, 1).setValue(new Date()); 
} 

function stopTime() { 
    ss.getRange(ss.getLastRow(), 2).setValue(new Date()); 
} 

的電子表格標籤Sheet1將有佈局一樣的你用插入兩張圖片,列A和B格式化爲時間。現在

,如果你選擇,你插有一個在右上角小箭頭按鈕的圖片。
enter image description here
在此處單擊「分配腳本」並鍵入功能的名稱(分別爲startTimestopTime)。

+0

這工作完美!非常感謝您的幫助和明確的探索。 –

+0

嗨羅賓,另一個問題,希望是最後一個。嘗試一下代碼,當我點擊開始時,它會增加單元格2A中的時間,非常完美。但是當我停下來時,它增加了3B(不是2B)的時間,因爲它似乎在2A中檢測到內容。如果我再次啓動,它會增加單元格4A中的時間,而不是3A。我怎麼能告訴它只檢查自己列中的內容? –

+0

你說得對。只需在stopTime()中的ss.getLastRow()之後移除'+ 1',它就可以工作。如果你想這樣做的列,因爲你有其他數據,請檢查[這](http://stackoverflow.com/questions/17632165/determining-the-last-row-in-a-single-column) –