Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 日期格式从D-M-Y更改为M-D-Y_Excel_Vba - Fatal编程技术网

Excel 日期格式从D-M-Y更改为M-D-Y

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 =

从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
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,对吗?:总是把日期当作日期!