VBA - 日期格式 " mm/dd/yyyy"

我的文件格式 excel 日期
Mar 30 2016 10:12:27:396AM

我想改变格式
mm/dd/yyyy

, 但我在代码中有一个错误..

错误执行时间 '13': 不一致类型

这是一个错误的字符串
SecondDate = Trim/Sheet2.Range/"B" & RowNo/.Value/


笔记

: 列中的数据 A 和 B 是日期

我的代码:


Dim Result, RowNo As Long
Dim FirstDate As Variant
Dim SecondDate As Variant

RowNo = 2

FirstDate = Trim/Sheet2.Range/"A" & RowNo/.Value/
SecondDate = Trim/Sheet2.Range/"B" & RowNo/.Value/
FirstDate = Format/FirstDate, "mm/dd/yyyy"/
SecondDate = Format/SecondDate, "mm/dd/yyyy"/

Do Until Sheet2.Cells/RowNo, 1/ = ""

FirstDate = Sheet2.Cells/RowNo, 1/
SecondDate = Sheet2.Cells/RowNo, 2/

If DateDiff/"d", FirstDate, SecondDate/ >= 15 Then
Sheet2.Cells/RowNo, 3/ = "1"
Sheet2.Cells/RowNo, 4/ = "2"

End If

RowNo = RowNo + 1
Loop


我真的觉得我是在正确的地方 path..am 我错过了什么?

更新

: 我的脚本将收到数据
Column A


Column B

并且,使用

功能 DateDiff, 一世

扣除

两个列如果差异将是 <15, 把它放在外面
Column C and D

作为
1, 2


笔记

:

我只扣除了两列的日子..但是可以减去和几年?

如果我使用格式,它可以使用 mm/dd/yyyy 在 excel, 但如果我使用另一种格式,我得到了

不一致

错误

更新 2

:


Column A | Column B | Column C
Mar 1 2016 10:12:27:396AM | Mar 30 2016 10:12:27:396AM |
Mar 1 2016 10:12:27:396AM | Mar 30 2016 10:12:27:396AM |


在我的文件中,这是日期格式如果您将其作为数据样本尝试,则可能是因为 VBA 不承认它 dateformat?
已邀请:

涵秋

赞同来自:

也许它将有助于解决您想要做的事情。

测试入口:

https://i.stack.imgur.com/YKlKG.png
测试输出:

https://i.stack.imgur.com/KT3me.png
代码:


Sub DateStuff//
Dim FirstDate As Range, SecondDate As Range
Dim RowNo As Long

Set FirstDate = Sheet4.Range/"A1"/
Set SecondDate = Sheet4.Range/"A2"/

FirstDate.NumberFormat = "mm/dd/yyyy"
SecondDate.NumberFormat = "mm/dd/yyyy"

RowNo = 2
Do Until Sheet4.Cells/RowNo, 1/ = ""
Set FirstDate = Sheet4.Cells/RowNo, 1/
Set SecondDate = Sheet4.Cells/RowNo, 2/
If IsDate/FirstDate.Value/ And IsDate/SecondDate.Value/ Then
If DateDiff/"d", FirstDate, SecondDate/ >= 15 Then
Sheet4.Cells/RowNo, 3/ = 1
Sheet4.Cells/RowNo, 4/ = 2
End If
End If
RowNo = RowNo + 1
Loop
End Sub


请花几分钟了解这段代码:

FirstDate 和 SecondDate - 这些是数据数据的类型,而不是日期或选项。 它们表明的细胞中的数据 - 这是一个日期或其他东西。

设置格式时,它会指定其在纸张上显示的方法。 这不是格式化字符串 VBA.

在打电话之前 DateDiff, 确保 FirstDate, 和 SecondDate 确实包含单元格中的日期数据类型,它将阻止许多错误。

今天使用日期函数的数据类型的操作是 NOT 取决于格式化。 他们使用内部类型的日期。 格式化 ONLY 影响日期如何转换为字符串和/或显示在床单上。

你问了检查,而不是一年中的一天。 有内置的功能 VBA /例如,年,月等等/, 这将有助于这种帮助。

如何获得最新的问题

:

我不确定你在哪里得到临时代码,但是 Excel 不承认
:000

对于毫秒。 他用
.000

. 见下文 ...

https://i.stack.imgur.com/TOB5n.png

要回复问题请先登录注册