在csv文件中,我获得值为“8-9-2016”的变量BookingDate
。如果与该值匹配,我想循环查看Excel工作表。
我发现,当我想在VBA中使用它时,我从工作表中读取的值会发生变化。比方说,我设置了一个变量BookingDate2
并给它一个这样的值:
LR = ThisWorkbook.Sheets("Sheetname").Range("A" & Rows.Count).End(xlUp).Row
For i = 2 To LR
BookingDate2 = ThisWorkbook.Sheets("Boekingen AMS-IAD").Cells(i, 1).Value
然后我想检查,如果找到这样的匹配:
If (BookingDate = BookingDate2) Then
'Do something
BookingDate
的值为“8-9-2016”,BookingDate2
的值应为“8-9-2016”,但更改为“9-8-2016”。
答案 0 :(得分:5)
我修好了!
我忘了将变量调暗到Date。 就像这样:
Dim BookingDate As String
Dim BookingDate2 As String
但必须是:
Dim BookingDate As Date
Dim BookingDate2 As Date
这对我有用。
答案 1 :(得分:0)
如果您确定BookingDate2
始终具有“dmy”的格式并且您希望它是“mdy”,则一种方法是拆分日期值,颠倒顺序,然后将其保存回来在测试其值之前,使用正确的格式变量。试试这个:
LR = ThisWorkbook.Sheets("Sheetname").Range("A" & Rows.Count).End(xlUp).Row
For i = 2 To LR
BookingDate2 = ThisWorkbook.Sheets("Boekingen AMS-IAD").Cells(i, 1).Value
Dim aux
aux = Split(BookingDate2,"-")
BookingDate2 = aux(1) & "-" & aux(0) & "-" & aux(2) 'reordering the date in the desired format
If (BookingDate = BookingDate2) Then
'Do something
当然,这是假设您的CSV和电子表格中的日期格式都没有改变