导入的范围时间值与源范围时间值不匹配 Google 工作表脚本

Imported range time values dont match source range time values Google sheets script

我有两个 sheet 的简单 google 传播 sheet:sheet1 和 sheet2。在 sheet2 中,A 列中有时间值,我试图将其复制到 sheet2 中的 A 列中。我为它写了一个脚本(请参阅 link),但值不一样。我需要使用什么 class/method 才能在两个 sheet 中获得相同的值。

我注意到,如果我将 sheet2 中的 A 列值格式化为文本,我会得到匹配值,但问题是我不允许这样做,并且该列必须保持格式为时间。

另外,我的第二个问题(如果离题请忽略)。如果我在 google sheet 有 3 名员工的工作时间表:John、Peter 和 Mike,他们都有编辑权限。如果 Mike 决定使用过滤器只过滤掉他的工作时间表,其他两个员工是否有可能未经编辑 sheet(因为我相信 Mike 的行为会影响其他两个人)。我的意思是,是否可以限制一个人的行为只是为了查看他正在看的内容,而其他人的版本不受影响(在这种情况下是工作时间表)?

link 传播sheet:

https://docs.google.com/spreadsheets/d/1tOtwzM0CxDHBXzC8ECeXlfaTGC4i7rH2XMYYszqRINM/edit?usp=sharing

非常感谢。

不完全确定问题出在哪里,您的脚本正在按预期工作,并且您在 sheet1 中的值与在 sheet2 中的值相同。唯一的区别是,在 Sheet1 中您有日期格式,而在 sheet2 中您只指定时间。我已经更改了 sheet1 中的数字格式,您可以看到它是一样的。

您遇到的问题是,通过仅指示时间,您让 sheet 假定任何日期。对于时间来说,这没什么大不了的,但是您必须确保时间格式相同。使用 getNumberFormat()setNumberFormat() (read here) 在复制时设置正确的格式或预先设置格式

至于过滤——您可以简单地为他们提供仅查看访问权限,并让他们使用过滤视图(就在 "Filter" 下方)。过滤器将为 sheet 上的每个人隐藏信息,而过滤器视图将仅对该人可见。您还可以为他们预设过滤器视图,因为具有编辑权限的人可以保存过滤器视图。