Excel VBA美国/英国日期转换问题



我有一个VBA脚本的问题,用于从一个电子表格导入数据,重新格式化,然后传输它。

源工作表中的日期条目以dd/mm/yyyy格式输入。目标工作表使用以下行来导入日期:

If RolandSource.Worksheets(tFocus).Cells(rFocus, 2).Value <> "" And RolandSource.Worksheets(tFocus).Cells(4, cFocus) <> "" And RolandSource.Worksheets(tFocus).Cells(rFocus, cFocus) <> "" Then ThisWorkbook.Worksheets(1).Cells(rRecord, 6).Value = RolandSource.Worksheets(tFocus).Cells(rFocus, cFocus).Value

问题是excel正在复制数据,然后自动格式化为日期。在此过程中,将转换英国和美国日期格式之间不明确的日期,尽管不需要这样做。

正在导入的数据集可能包含日期(dd/mm/yyyy)或文本条目,因此通常的日期处理路由会产生错误。有人有什么建议吗?

您可以通过将单元格A1格式化为文本,在单元格A1中输入"01/02/2003",然后在直接窗口中执行以下操作来看到我所描述的问题:

ThisWorkbook.Worksheets(1).Cells(1,2).value = ThisWorkbook.Worksheets(1).Cells(1,1).Value

(请注意,该解决方案将用作需要处理日期和单词的循环的一部分)。

感谢@OmegaStripes和@RonRosenfeld -答案是在将值从源复制到目的地之前格式化单元格。这会导致循环失败,但是通过添加If()语句来保护循环免受错误的影响,我已经解决了这个问题。谢谢你们俩的帮助。

最新更新