2011-07-21 50 views
2

Excel AddIn,C#,UDF, MyUDF调用Web服务来检索某个日期。有时,返回的日期不在1月1日至19日至2009年12月31日(Excel日期范围)的范围内。例如。在一种情况下,返回日期是Jan-2-0002(在C#中有效,但在Excel中无效),然后Excel崩溃。我不会硬编码“Jan-1-1900”,所以想知道是否有一种方法可以通过编程方式获得它。感谢如何获得最早日期以编程方式获得Excel支持

+1

老实说,我会硬编码或将日期范围放在配置文件中。 – Tipx

回答

3

Excel内部,转换,你可以解析对应1成字符串日期:

=TEXT(1,"dd-mm-yyyy") 

这应该给你1900年1月1日或1904年2月1日根据选择的date system(帽子提示barrowc!)。请注意,日期系统不仅相差四年,而且还有一个情况是,值1对应于1月1日(1900年),另一个对应于1月1日(1904年)的0。对于给定的工作簿,Workbook.Date1904 Property可以告诉您正在使用哪个日期系统。

+1

+1只要注意正在设置的Workbook.Date1904属性 - 这会导致日期从1904/01/02开始,而不是1900/01/01 - 请参阅http://msdn.microsoft.com/ en-us/library/ff193264.aspx – barrowc

+0

Thanks @barrowc - 我添加了一些关于该信息。我想我对“事情永远不会改变”有太多的信心...... –