如何强制输入 Google 表格单元格中的数据采用所需的日期格式?

问题描述 投票:0回答:1

我有一列单元格设置为使用特定的日期时间格式。但是,当用户在其中一个单元格中输入其他内容(例如 1 或 5/5)时,它会覆盖格式设置并按原样接受输入。 在 Excel 中,如果我使用该单元格格式,然后输入 1,它会将其更改为 01/01/1900 00:00:00。 有没有办法让 Google 表格做同样的事情?

我可以使用数据验证来确保输入是合法的日期,但它实际上并没有按照我需要的方式格式化它,它只是摆脱了一些非常糟糕的输入,这甚至不是我主要关心的。

我知道有基于注册表的方法可以按照您需要的方式获取日期,但我见过的方法需要单独的输入和结果列,这对于仅在一列中输入数据的最终用户来说不起作用。

google-sheets format
1个回答
0
投票

这是个好问题;不知道Google Sheets内是否可以实现。

您可以使用脚本:在“扩展”菜单中打开“应用程序脚本”,然后用以下代码替换所有“myFunction”内容:

function onEdit(e) {
  const columnLetter = "G";
  const colNum = SpreadsheetApp.getActiveSheet().getRange(`${columnLetter}1`).getColumn();
  const cell = e.range;
  if (cell.getColumn() === colNum) {
    cell.setNumberFormat("dd/mm/yyyy hh:mm");
  }
}

您必须修改两件事:

  1. 将列字母(在我的示例中为 G)替换为您的特定列的字母,并保留引号 - 所以
    "B";
    ,而不是
    B;
    ;
  2. 将日期时间格式替换为您想要的格式。在这里,我设置了
    25/09/2024 01:02
    格式,但您可以使用以下指南自定义该格式:日期和数字格式。再次,留下引号。

这应该符合您的要求:每当用户编辑

columnLetter
列中的任何单元格时,脚本都会强制执行格式。

© www.soinside.com 2019 - 2024. All rights reserved.