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

时间:2016-09-28 17:14:51

标签: excel vba excel-vba datetime copy

我遇到一个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

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

感谢您的期待。

1 个答案:

答案 0 :(得分:0)

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