【发布时间】:2015-08-31 11:11:06
【问题描述】:
已编辑) 这是正确的吗?我需要对 P 列做同样的事情。我应该做另一个 for 循环吗?
Dim i As Long
For i = 1 To Rows.Count
If Len(Cells(i, "Q").Value) <= 4 Then
Cells(i, 1).NumberFormat = "01/01/yyyy"
Else: Cells(i, "Q").NumberFormat = "MM/DD/YYYY"
End If
Next i
当我导入 excel 文件进行访问时,具有年份(19xx)或完整日期的列在导入后无法正确显示。 年份看起来不错,但完整日期更改为随机数,如 39213 等。 所以我尝试将整个列格式化为文本并导出以访问,同样的事情发生了。 我该怎么办? 原始列是“一般”格式
01/01/1962
01/01/1966
01/01/1956
1964
01/01/1943
01/01/1943
01/01/1964
1964
01/01/1972
01/01/1948
01/01/1961
01/01/1953
01/01/1961
01/01/1963
01/01/1963
01/01/1973
1960
01/01/1956
01/01/1940
1958
1958
1955
01/01/1948
01/01/1948
01/01/1970
1959
1964
01/01/1975
1966
这就变成了
22647
24108
20455
1964
15707
15707
19
23377
1964
26299
17533
22282
19360
22282
23012
23012
26665
1960
20455
14611
1958
1958
1955
17533
17533
25569
1959
1964
27395
1966
而后一列是“文本”格式。不知道怎么回事
【问题讨论】:
-
能否将完整日期的列设置为日期格式?
-
这就是我想知道的。我无法将列设置为日期格式,因为某些列只有年份而不是完整日期。所以我必须将它设置为文本,这样我才能看到年份和完整日期
-
你的意思是在一列中有单元格,其中一些是完整的年份和一些完整的日期?
-
是的,我将把它附加到另一个以文本格式显示完整年份的列中。
-
我还可以检查 Q 列中的每个单元格,看看一个单元格的数字是否大于 2000,然后仅格式化这些值,但它不起作用,因为它将被导出到访问 db,其中整列应具有相同的格式