gpt4 book ai didi

vba - 为什么我的 Excel 电子表格将数字格式设置为日期?

转载 作者:行者123 更新时间:2023-12-03 00:29:08 25 4
gpt4 key购买 nike

我们有很多自动电子表格,可以提取数据、计算预测、发布网页等。这是一个非常困惑的系统,我很想重做它(例如,使用真正的网络服务),但我们无权执行此操作。

我们运行 Excel 2007,大部分电子表格都转换为 .xlsm

无论如何,由于某种我不知道的原因,某些电子表格会在看似随机的时间将某些数字单元格格式化为日期。正如您可能想象的那样,这个问题很难追踪,通常我只会在有人写了一封关于我们的数据读取 3-Feb-1901 的令人讨厌的电子邮件时才发现,而它应该读取 400 (显然 Excel 认为 1900 年是闰年)。

我已多次将相关单元格明确设置为数字格式,却发现它们填充了一周后的日期。

我已经扫描了宏(许多宏位于古老的 Excel 4.0 macro language 中),它们似乎没有任何格式更改。所有复制/粘贴均作为值完成,并且不保留源单元格格式。

相关工作表中没有条件格式规则。

Auto_Open 子例程中添加一些 VBA 以根据需要设置单元格格式似乎可以解决该问题。

此修复是否足够好,或者一周后我会发现日期格式出现在计算中?如果没有,根本原因是什么以及如何解决它?

有一件事:我刚刚读到 this source Excel '07 可能会自发地将 Normal 样式的单元格更改为格式 [$-409]m/d/yy h:mm AM/PM;@。我的一些已更改的单元格的样式肯定是 Normal,但显然不是全部。

最佳答案

我假设相关单元格是复制/粘贴数据或外部/查询数据的接收者?

每当您将粘贴的数据添加到 Excel 中的单元格时,它都会运行一个例程来确定列出为“常规”格式的任何内容的最佳格式,即使源是“常规”或“数字”。有时,即使将目标单元格设置为“数字”格式也无法解决此问题。但我发现让它按照您需要的方式工作的唯一方法是在粘贴/更新/刷新操作之前显式声明相关目标范围的格式(在宏中)。

我还认为有一种方法可以在 VBA 中禁用日期识别,但我不记得确切的代码。尝试在手动导入或执行更新时录制宏,您应该能够使用出现的内容。

编辑:刚刚进行了测试运行,在连接字符串和目标之后添加:

.WebDisableDateRecognition = True

如果您从外部源提取数据而不是复制/粘贴,那么这绝对可以解决问题。

关于vba - 为什么我的 Excel 电子表格将数字格式设置为日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11852935/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com