我正在尝试将包含日期的列从Text转换为Column,因为它当前不是日期格式。我可以在Excel上轻松完成此操作。但是,面临在VBA上正确行事的挑战。
我尝试了多个代码。但是,他们只将列的某些单元格转换为日期格式,但不转换所有单元格。
任何帮助都将受到高度赞赏。
以下是我正在使用的代码:
With ActiveSheet.UsedRange.Columns("B").Cells
.TextToColumns Destination:=.Cells(1), DataType:=xlFixedWidth, FieldInfo:=Array(0, xlYMDFormat)
.NumberFormat = "yyyy-mm-dd" 'change to any date-based number format you prefer the cells to display
End With
答案 0 :(得分:0)
无论如何,请这样做:
Option Explicit
Public Sub TestMe()
With ActiveSheet.Range("B:" & lastRow(column_to_check:=2))
.TextToColumns Destination:=.Cells(1), DataType:=xlFixedWidth, FieldInfo:=Array(0, xlYMDFormat)
.NumberFormat = "yyyy-mm-dd"
End with
End Sub
Public Function lastRow(Optional str_sheet As String, Optional column_to_check As Long = 1) As Long
Dim shSheet As Worksheet
If str_sheet = vbNullString Then
Set shSheet = ThisWorkbook.ActiveSheet
Else
Set shSheet = ThisWorkbook.Worksheets(str_sheet)
End If
lastRow = shSheet.Cells(shSheet.Rows.Count, column_to_check).End(xlUp).Row
End Function
lastRow函数返回column_to_check中的最后一行。在您的情况下,第二列。