我们有很多自动电子表格,可以提取数据,计算预测,发布网页等。这是一个非常混乱的系统,我很乐意重做它(比如说,真正的网络服务),但我们没有这样做的许可。
我们运行Excel 2007,大部分电子表格都转换为.xlsm
s。
无论如何,由于我不知道某些原因,某些电子表格会将某些数字单元格格式化为看似随机的日期。正如您可能想象的那样,这个问题很难追查,通常我只会发现有人写了一封关于我们的数据阅读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
的样式,但显然不是全部。
答案 0 :(得分:4)
我假设有问题的单元格是复制/粘贴数据或外部/查询数据的接收者?
每当您将粘贴的数据添加到excel中的单元格时,它就会运行例程来确定列为“常规”格式的任何内容的最佳格式,即使源是“常规”或“数字”。有时甚至将目标单元格设置为“数字”格式并不能解决此问题。但是我找到了让它按照您需要的方式工作的唯一方法是在粘贴/更新/刷新操作之前明确地将格式(在宏中)声明到相关的目标范围。
我也认为有一种方法可以在你的VBA中禁用日期识别,但我记不清确切的代码了。尝试在手动导入或执行更新时录制宏,您应该可以使用出现的内容。
编辑:刚刚进行了测试运行,并在连接字符串和目标之后添加:
.WebDisableDateRecognition = True
如果您从外部源中提取数据而不是复制/粘贴数据,那么这绝对应该可以解决问题。
答案 1 :(得分:0)
为了防止这种情况有所帮助,我遇到了一个问题,即excel自动将我从网页上拉出的信息格式化为DATE格式,修复,在导入窗口中,单击选项并取消勾选自动日期格式化选项,之后,我的数据导入完美!