为什么我的Excel电子表格将我的号码格式化为date?

我们有很多自动化的电子表格提取数据,计算预测,发布网页等。这是一个非常混乱的系统,我很想重做它(用一个真正的web服务),但我们不有权这样做。

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

无论如何,出于某种原因我不知道,某些电子表格会将某些数字单元格式化为看起来随机的date。 正如你所想象的那样,这个问题很难追查到,而且通常我只有在有人写了一封关于我们的数据阅读的恶意邮件时才发现它应该读为400 (显然,Excel认为这是一个闰年1900)。

我已经明确地将有问题的单元格设置为数字格式几次,只是一个星期后才发现它们充满了date。

我扫描了macros(很多是古老的Excel 4.0macros语言 ),它们看起来是干净的任何格式更改。 所有的复制/粘贴都是按值完成的,不保留源单元格的格式。

问题表中没有条件格式规则。

Auto_Open子例程中根据需要添加一点VBA格式化单元格似乎解决了这个问题。

这个修复是否足够好,或者在一个星期内我会发现date格式出现在计算中? 如果没有,根源是什么,我该如何解决?

有一件事:我刚从这个源文件中读到,Excel'07可能自发地将Normal格式的单元格改为[$-409]m/d/yy h:mm AM/PM;@的格式。 我改变的一些细胞绝对是Normal ,但显然不是全部。

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

无论何时将附加数据添加到Excel中的单元格中,即使源为“常规”或“数字”,它也会通过例行程序来确定任何以“常规”格式列出的最佳格式。 有时甚至将目标单元格设置为“数字”格式不能解决此问题。 但是我发现唯一的方法是按照需要的方式来工作,在paste / update / refresh操作之前,显式声明格式(在macros中)到目标区域。

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

编辑:只是做了一个testing运行,并在您的连接string和目的地后添加:

 .WebDisableDateRecognition = True 

如果你从外部来源提取数据,而不是复制/粘贴,那肯定会有诀窍。

以防万一这有助于,我有一个问题,在Excel中自动格式化我的信息从网页到DATE格式,以解决,在导入窗口中,单击选项和UNCHECK自动date格式化选项,之后,我的数据导入完美!