当我使用CopyFromRecords方法时,即使我显式地将列格式化为货币,Excel工作表也会将列E中的前10条记录作为日期。列B也有同样的问题,但在我添加格式代码后,它的格式设置正确。
我知道我可以通过循环记录来解决这个问题,但有人知道为什么会发生这种情况吗?我使用的Excel模板文件已经有列B,C和E格式化为货币。因此,CopyFromRecords方法必须更改前10个单元格的格式,但随后它忽略了代码中的显式格式?
xlSheet.Range("A4").CopyFromRecordset rst
rst.Close
xlSheet.Range("B:C,E:E").NumberFormat = "$#,##0.00"
如果我把它改成这样,结果是一样的:
xlSheet.Range("A4").CopyFromRecordset rst
rst.Close
xlSheet.Range("B:C").NumberFormat = "$#,##0.00"
xlSheet.Range("E:E").NumberFormat = "$#,##0.00"
1条答案
按热度按时间e0uiprwp1#
有趣的是,我认为问题是新的工作手册。您提供的代码似乎只创建一个新的空白工作簿。如果你想打开一个模板文件,你需要指定模板文件路径如下。