Excel 日期格式从D-M-Y更改为M-D-Y
从csv文件中,我获得一个值为8-9-2016的变量BookingDate。我想在Excel表格中循环检查是否存在与该值匹配的项 我发现,当我想在VBA中使用这些值时,我从工作表中读取的值会发生更改。比方说,我设置了一个变量BookingDate2,并给它一个如下的值:Excel 日期格式从D-M-Y更改为M-D-Y,excel,vba,Excel,Vba,从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 =
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
Dim BookingDate As String
Dim BookingDate2 As String
然后我想检查一下,它是否找到了这样的匹配项:
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
Dim BookingDate As String
Dim BookingDate2 As String
BookingDate的值为8-9-2016,BookingDate2的值应为8-9-2016,但已更改为9-8-2016。如果您确定BookingDate2的格式始终为d-m-y,并且希望其为m-d-y,则一种方法是拆分日期值,颠倒顺序,然后以正确的格式将其保存回变量,然后再测试其值。试试这个:
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和电子表格中的日期格式都没有改变如果您确定BookingDate2始终采用d-m-y格式,并且希望它是m-d-y,一种方法是拆分日期值,颠倒顺序,然后以正确的格式将其保存回变量,然后再测试其值。试试这个:
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和电子表格中的日期格式都没有改变我修正了它
到目前为止,我忘了调暗变量。
就是这样,
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
Dim BookingDate As String
Dim BookingDate2 As String
但必须是:
Dim BookingDate As Date
Dim BookingDate2 As Date
这对我来说是个好办法。我把它修好了
到目前为止,我忘了调暗变量。
就是这样,
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
Dim BookingDate As String
Dim BookingDate2 As String
但必须是:
Dim BookingDate As Date
Dim BookingDate2 As Date
这对我来说是个好办法。期待着一个明确的答案,对我来说,分类是将你的日期和月份存储为3个字母“一月/二月”。。。这样一来,就不会对月份产生混淆,但这对外语不起作用。一些聪明的人应该参与进来,给出一个很好的答案,参考默认的地区等等。14小时前也有人问过同样的问题。。。期待一个明确的答案,对我来说,分类是将你的日期和月份存储为3个字母一月/二月。。。这样一来,就不会对月份产生混淆,但这对外语不起作用。一些聪明的人应该参与进来,给出一个很好的答案,参考默认的地区等等。14小时前也有人问过同样的问题。。。规则1他们都是1,对吗?:总是把日期当作日期!规则1他们都是1,对吗?:总是把日期当作日期!