[英]Google Sheet - Add Timestamp When Any Cell on Specific Sheet is Modified
[英]Google Sheet Script To Add Time To Specific Cell
我需要有关脚本的帮助,该脚本会将时间值添加到包含时间值的特定单元格中。 例如,单元格A1包含一个类似于09:30的时间值。 然后,当脚本运行时,它将在A1中增加30分钟的时间,因此该时间为10:00。
感谢帮助。
编辑:下面是我当前的代码
function modifyCell(cellName, increase) {
var range = SpreadsheetApp.getActiveSheet().getRange(cellName)
var AddTime = -30;
if (increase) {
AddTime = 30;
}
range.setValue(range.getValue() + AddTime);
}
function increaseLine2() {
modifyCell("C5", true);
}
function decreaseLine2() {
modifyCell("C5", false);
}
这是一个数字时钟,它以Date()函数中的正确时间开始。 但是,在更新时,通过采用以前的datetime值并向其添加60 * 1000毫秒,并使用新值(而不是使用可用的实际值)格式化日期来增加60秒的时间。 因此,它每分钟仅更改一次。 它还为您创建和管理一分钟计时器。
function digitalClockMenu(){
SpreadsheetApp.getUi().createMenu('Clock Tools')
.addItem('Start Clock', 'startDigitalClock')
.addItem('Stop Clock', 'stopDigitalClock')
.addToUi();
}
function startDigitalClock() {
if(!isTrigger('addMinute')){
ScriptApp.newTrigger('addMinute').timeBased().everyMinutes(1).create();
}
SpreadsheetApp.getActive().getSheetByName('ClockSheet').getRange('A2').clearFormat().setValue('');
SpreadsheetApp.getActive().getSheetByName('ClockSheet').getRange('A1').setValue('Starting');
}
function initialTime(){
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName('ClockSheet');
sh.getRange('A2').setValue(Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "HH:mm:ss"));
sh.getRange('A1').setValue('Running');
}
function addMinute(){
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName('ClockSheet');
var v=sh.getRange('A2').getValue();
if(v){
var old=new Date(v).valueOf();
var minute=60*1000;
sh.getRange('A2').setValue(Utilities.formatString(Utilities.formatDate(new Date(old + minute), Session.getScriptTimeZone(), "HH:mm:ss")));
}else{
initialTime();
}
}
function stopDigitalClock(){
deleteTrigger('addMinute');
SpreadsheetApp.getActive().getSheetByName('ClockSheet').getRange('A1').setValue('Stopped');
}
function isTrigger(funcName)
{
var r=false;
if(funcName)
{
var allTriggers=ScriptApp.getProjectTriggers();
var allHandlers=[];
for(var i=0;i<allTriggers.length;i++)
{
allHandlers.push(allTriggers[i].getHandlerFunction());
}
if(allHandlers.indexOf(funcName)>-1)
{
r=true;
}
}
return r;
}
function deleteTrigger(funcName)
{
var triggers=ScriptApp.getProjectTriggers();
for(var i=0;i<triggers.length;i++)
{
if(funcName==triggers[i].getHandlerFunction())
{
ScriptApp.deleteTrigger(triggers[i]);
break;
}
}
}
它可以满足您的要求,再加上一点点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.