Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 谷歌脚本删除我的超链接(谷歌电子表格) 情况:_Google Apps Script_Google Sheets_Google Spreadsheet Api - Fatal编程技术网

Google apps script 谷歌脚本删除我的超链接(谷歌电子表格) 情况:

Google apps script 谷歌脚本删除我的超链接(谷歌电子表格) 情况:,google-apps-script,google-sheets,google-spreadsheet-api,Google Apps Script,Google Sheets,Google Spreadsheet Api,我有以下脚本,每1小时运行一次。这个脚本插入“更新年龄”,我的意思是从DATE1到DATE2过去了多少天 脚本1: 问题: 列A:此列具有超链接。(车票号码) F&G列:日期1和日期2 H列:脚本1的结果 在coulmn A中,我有其他插入超链接的脚本。。。看见 此脚本2运行OnEdit,但脚本1每1小时运行一次 当脚本1运行时,公式或超链接将被删除,并且仅显示单元格中的数据 问题: 在脚本1运行时,不删除超链接或将超链接应用于从第二行(超链接)开始的所有行 插入链接的脚本: 函数插入链接(e

我有以下脚本,每1小时运行一次。这个脚本插入“更新年龄”,我的意思是从DATE1到DATE2过去了多少天

脚本1:

问题: 列A:此列具有超链接。(车票号码)
F&G列:日期1和日期2
H列:脚本1的结果

在coulmn A中,我有其他插入超链接的脚本。。。看见
此脚本2运行OnEdit,但脚本1每1小时运行一次

当脚本1运行时,公式或超链接将被删除,并且仅显示单元格中的数据

问题: 在脚本1运行时,不删除超链接或将超链接应用于从第二行(超链接)开始的所有行

插入链接的脚本:
函数插入链接(e)
{
var actSht=e.source.getActiveSheet();
如果(actSht.getName()=['ISP1']){
var activeCell=actSht.getActiveCell();//检测activeCell
//var activeCell=event.range;
var-activeCellValue=e.value;
var column=activeCell.getColumn();
var colNums=[1];//列,考虑对其进行编辑
if(colNums.indexOf(column)==-1)返回;//如果未考虑列,则返回
var row=activeCell.getRow();
if(行<2)返回;//如果标题行,则返回
变量长度=字符串(activeCellValue).length;
如果(!e.value)
{
activeCell.setValue()的
}
否则,如果(长度>2)
{
activeCell.setValue('=HYPERLINK'+'(“https://www.example.com/id=“+activeCellValue+”;“+activeCellValue+”);
}
}
}
脚本更新:

// Create a timer trigger that will call "shellUpdateAge" every 30 minutes
// This function will run only for this particular sheets
function shellUpdateAge(){
  var sheets = ['ISP1'];
  for (var s in sheets){
toUpdateAge(sheets[s]);
  }
}

function toUpdateAge(sheetName){
  var ss = SpreadsheetApp.openById('1WmEwSLzqxOj7xkjokmor5B_HpMdabbEAGXiYeQwpIl8');
  var sh = ss.getSheetByName(sheetName);
  var data = sh.getRange(1,1,sh.getLastRow(),sh.getLastColumn()).getValues();
  for(var n=0;n<data.length;++n){
  if(typeof(data[n][6])=='object'){
data[n][7]=dayToToday(data[n][6])
  }
}
   sh.getRange(1,1,data.length,data[0].length).setValues(data)
}

function dayToToday(x){
  var refcell = x;;// get value in column A to get the reference date
  var refTime = new Date(refcell);
  var ref = refTime.setHours(0,0,0,0)/(24*3600000);// set hours, minutes, seconds and milliseconds to 0 if necessary and get number of days
  var today = new Date();
  var TD = today.setHours(0,0,0,0)/(24*3600000);// set hours, minutes, seconds and milliseconds to 0 if necessary and get number of days
  var day = parseInt(TD-ref);// get the difference in days (integer value )
  return day ; // return result that will be in cell
}
//创建一个计时器触发器,每30分钟调用一次“shellUpdateAge”
//此功能将仅针对此特定图纸运行
函数shellUpdateAge(){
风险值表=['ISP1'];
用于(表中的var s){
更新日期(张);
}
}
函数ToUpdate(sheetName){
var ss=SpreadsheetApp.openById('1WmEwSLzqxOj7xkjokmor5B_HpMdabbEAGXiYeQwpIl8');
var sh=ss.getSheetByName(sheetName);
var data=sh.getRange(1,1,sh.getLastRow(),sh.getLastColumn()).getValues();

对于(var n=0;n我只需获取并设置最小值,因此您不需要涉及超链接列:

function toUpdateAge(sheetName){
  var ss = SpreadsheetApp.openById('1WmEwSLzqxOj7xkjokmor5B_HpMdabbEAGXiYeQwpIl8');
  var sh = ss.getSheetByName(sheetName);
  var range = sh.getRange(1,7,sh.getLastRow(),2);
  var data = range.getValues();
  for(var n=0;n<data.length;++n){
  if(typeof(data[n][0])=='object'){
    data[n][1]=dayToToday(data[n][0]);
  }
}
   range.setValues(data);
}
函数ToUpdate(sheetName){
var ss=SpreadsheetApp.openById('1WmEwSLzqxOj7xkjokmor5B_HpMdabbEAGXiYeQwpIl8');
var sh=ss.getSheetByName(sheetName);
var range=sh.getRange(1,7,sh.getLastRow(),2);
var data=range.getValues();

对于(var n=0;您是否能够发布用于脚本1的确切代码?我假设您正在获取整行的值,然后再次设置它们,因此过度编写了超链接公式。您好,我更新了…我想如果我插入“更新年龄”中编写一行脚本,在该行中,仅当单元格的数据或长度>4个字符时,才从第2行开始重新写入列a的超链接公式…或修改更新以避免过度写入列a…我不知道…抱歉,英语汉克正在工作..但我有一个问题,更新年龄结果为负而不是正。结果是您想要的吗是1天而不是-1天。我是说G-F…你的脚本正在做F-G…我尝试修改但没有成功…非常感谢…我修复了最后一个问题…我更改了此部分//var day=parseInt(ref TD);/…谢谢AdamLNota:我不使用任何数组公式,因为有人可以更改或删除公式或其他东西…我使用脚本更适合我。你好,Adam,我使用的是相同的公式,但在本例中,colunh(H)创建日期(I)上次更新,(J)日期+时间,(K)公式求和日期,(L)剩余公式(m)验证规则……我想在Cououm(o)中画出结果,而值是列H——我的问题是当公式运行相同的删除公式和改变列中的数据格式…我认为问题是当数组粘贴结果不保存从中间的另一列的公式和公式…
function toUpdateAge(sheetName){
  var ss = SpreadsheetApp.openById('1WmEwSLzqxOj7xkjokmor5B_HpMdabbEAGXiYeQwpIl8');
  var sh = ss.getSheetByName(sheetName);
  var range = sh.getRange(1,7,sh.getLastRow(),2);
  var data = range.getValues();
  for(var n=0;n<data.length;++n){
  if(typeof(data[n][0])=='object'){
    data[n][1]=dayToToday(data[n][0]);
  }
}
   range.setValues(data);
}