Excel VBA代码用于拆分单元格并将日期复制到新列,某些日期值会更改

时间:2017-12-12 17:26:55

标签: excel vba excel-vba date

我有以下代码部分,它根据关键字"里程碑"拆分单元格中的值,然后在新工作表上创建新列并将日期粘贴到其中。

Sheets("DemandTable").Rows("1").Copy Sheets("DataSheet").Range("A1")

With Sheets("DemandTable")

LastRow = .Range("A" & .Rows.Count).End(xlUp).Row

pasteRowIndex = 2

For r = LastRow To 1 Step -1
 If IsError(.Cells(r, "L").Value) Then
     .Cells(r, "L").EntireRow.Delete

ElseIf LCase(.Cells(r, "L").Value) Like LCase("Milestone*") Then
  If UBound(Split(.Cells(r, "L"), ",")) > 0 Then
      i = i + 1
      ReDim v(1 To i)
      v(i) = pasteRowIndex
      End If

  Sheets("DemandTable").Rows(r).Copy Sheets("DataSheet").Rows(pasteRowIndex)
 pasteRowIndex = pasteRowIndex + 1
End If
Next r
End With

With Sheets("DataSheet")

newLastRow = pasteRowIndex

If IsArray(v) Then
    .Columns(13).Insert Shift:=xlToRight
     For i = 1 To newLastRow
       If InStr(1, .Cells(i, "L"), ",") Then
        .Cells(i, "M").Value = Split(.Cells(i, "L"), ",")(1)
        End If
    Next i
End If

我遇到的问题是" Milestone"之后的价值观。关键字是日期,当它们被复制到新列时,它们在某些情况下会改变值,例如2017年10月1日可以成为10/01/2017。

有没有办法可以设置新日期的格式,以便它们不会更改值并显示为dd / mm / yyyy?我在格式化方面尝试的任何东西都不能纠正日期和月份数字的交换?请注意,这仅适用于某些行。

由于

1 个答案:

答案 0 :(得分:0)

这个问题很复杂,已经回答了。

  

"dd/mm/yyyy" date format in excel through vba

解决方案:

Cells(1, 1).NumberFormat = "dd/mm/yyyy"