Date 在GoogleApps脚本中,我的约会从一个普通格式切换到一个看起来像id号的格式

Date 在GoogleApps脚本中,我的约会从一个普通格式切换到一个看起来像id号的格式,date,google-apps-script,google-sheets,format,Date,Google Apps Script,Google Sheets,Format,我正在使用GoogleApps脚本创建一个GoogleSheet,它可以按日期将单元格区域排序到不同的工作表中。我在单元格A2中输入了一个日期,然后当我使用我的函数时,它会使用与A2中相同的日期对工作表进行排序,如果没有,它会创建一个具有该日期的新工作表。我遇到的问题不是细胞到达了正确的位置,而是由于某种原因,日期变为某种类型的id。例如,在2001年1月1日,第一对夫妇工作正常,然后在接下来的几次尝试中,它将日期改为“36892” 我什么都没试过,因为我不知道该试什么。如果我知道这个命令,我会

我正在使用GoogleApps脚本创建一个GoogleSheet,它可以按日期将单元格区域排序到不同的工作表中。我在单元格A2中输入了一个日期,然后当我使用我的函数时,它会使用与A2中相同的日期对工作表进行排序,如果没有,它会创建一个具有该日期的新工作表。我遇到的问题不是细胞到达了正确的位置,而是由于某种原因,日期变为某种类型的id。例如,在2001年1月1日,第一对夫妇工作正常,然后在接下来的几次尝试中,它将日期改为“36892”

我什么都没试过,因为我不知道该试什么。如果我知道这个命令,我会在将单元格移动到正确的位置后将格式切换回来

function findDate() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  ss.setActiveSheet(ss.getSheets()[0])
  var range = sheet.getRange("A2");
  var A2 = SpreadsheetApp.getActiveSheet().getRange('A2').getValue();
  var templateSheet = ss.getActiveSheet();  
  var val = Utilities.formatDate(new Date(A2), "GMT+1", "MM/dd/yyyy");
  range.setValue(new Date(A2)).setNumberFormat("MM/dd/yyyy");
  A2 = SpreadsheetApp.getActiveSheet().getRange('A2').getValue();
  if( ss.getSheetByName(val) == null)
  {
    //if returned null means the sheet doesn't exist, so create it
    ss.insertSheet(val, ss.getSheets().length, {template: templateSheet});
  }
  else
  {
    var sheet1 = ss.getSheetByName("GUI");
    var sheet2 = ss.getSheetByName(val);
    sheet1.getRange("A2:D2").copyTo(sheet2.getRange(sheet2.getLastRow()+1,1,1,4), {contentsOnly:true});
  }
    ss.setActiveSheet(ss.getSheets()[0]);
    sheet.getRange("A2:D2").clearContent();
}
这是我的职责。因为我不知道问题出在哪里,所以我复制了整个内容,对不起,太多了

Date       Event    Time            Comments
01/01/2001 Movie    22:00           a
01/01/2001 Movie    11:00 PM        a
36892      Movie    0.7083333333    a
36892      Movie    12:00 PM        a
这是由于每次都添加相同的日期,并使用函数将它们排序到正确的工作表中。时间是奇怪的,我真的不知道为什么,但我不在乎这一点,这是一个未来的问题(除非任何人有任何线索,为什么它会改变格式太)。然而,日期似乎不是某个随机数,因为同一日期给出了相同数字的输出。我本以为会是这样的:

Date       Event    Time            Comments
01/01/2001 Movie    10:00 PM        a
01/01/2001 Movie    11:00 PM        a
01/01/2001 Movie    (I forget)      a
01/01/2001 Movie    12:00 PM        a
答复: 您需要从
copyTo()
方法中删除
{contentsOnly:true}

推理: 通过将
contentsOnly
布尔值设置为true,您告诉工作表复制它在单元格中看到的内容,而不是您看到的内容

在工作表中,从1900年1月1日开始的所有日期都以1为一天进行序列化,因此复制
01/01/2001
是以序列号
36892
为一天的


至于日期-它被解读为一天中距离的一小部分-在
17:00h
和一天中的24小时,日期将被视为
17/24
0.708333333

,尽管我不确定我是否能正确理解你的情况,例如,在你的脚本中,
{contentsOnly:true}
被删除,您将检索什么结果?