【发布时间】:2021-07-04 04:05:38
【问题描述】:
在工作中,我们使用 Office 365 Excel 的文件作为预订系统。对于每个记录都有预订日期的每个站点,它都有多个选项卡。日期格式存在问题 - 基本上默认语言环境设置为"mm/dd/yyyy",但日期显示在"dd/mm/yyyy" 中。当人们手动添加行时(通常每天都会自动生成预订时段)并且只是以错误的格式输入日期而不是从相邻单元格复制日期值,它显示正确,但顶部栏中的单元格值不同,但是在Desktop App 中打开此文件时,它根本不会将其视为不同的值。只有在应用过滤器时,您才能过滤日期和字符串日期值。这会导致在创建报告或基于日期导入数据时,宏无法获取某些日期。
我一直在考虑编写一个实用程序宏,它会根据当前日期的前后日期来清理所有日期,但是我不确定这是否是最好的方法。我认为我不能只更改所有用户的语言环境设置,因为我在文档中阅读的内容只会更改单个用户设置,我不确定这将如何影响整个系统的整体功能。有什么方法可以比解析这个庞大的文件或手动查找日期更容易完成吗?
这是一个真正的痛苦,因为这个文件是在我加入团队之前很长时间设计的,现在我正在努力减少这个错误的发生率。
提前感谢任何线索!
【问题讨论】:
-
对于
VBA有函数IsDate()试试看。 -
@Harun24HR 小心
IsDate只是告诉您字符串是否可以读取为日期。它确实不告诉你单元格内容是否是一个真正的数字日期!IsDate将返回True,即使单元格包含看起来像日期的字符串。 -
@Pᴇʜ 哦,我的错!我不知道这些信息。
-
不用担心 ;) 为了您的兴趣:IsDate function(请参阅那里的示例)。
-
另一种可能性是让他们从日历中选择日期(日期选择器)。