Try changing them from .Text to .Value2 and then applying the date format at the end, like so:
Sub tgr()
Dim wbDest As Workbook
Dim wsDest As Worksheet
Dim nRow As Long
Dim lRow As Long
Dim r As Long, c As Long
Dim arrData() As Variant
Dim DataIndex As Long
Set wbDest = ActiveWorkbook
Set wsDest = wbDest.Sheets("Sheet1")
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = False
.Filters.Clear
.Filters.Add "Excel Files", "*.xls*"
If .Show = True Then
Application.ScreenUpdating = False
DataIndex = 0
nRow = wsDest.Cells(Rows.Count, "K").End(xlUp).Offset(1).Row
With Workbooks.Open(.SelectedItems(1))
lRow = .Sheets(1).Cells(Rows.Count, "L").End(xlUp).Row
ReDim arrData(1 To 16, 1 To Evaluate("CountA(M8:X" & lRow & ")"))
For r = 8 To lRow
For c = Columns("M").Column To Columns("X").Column
If Len(Trim(.Sheets(1).Cells(r, c).Value)) > 0 Then
DataIndex = DataIndex + 1
arrData(1, DataIndex) = .Sheets(1).Cells(6, c).Value2
arrData(4, DataIndex) = .Sheets(1).Cells(r, "L").Value2
arrData(7, DataIndex) = .Sheets(1).Cells(r, "B").Value2
arrData(8, DataIndex) = .Sheets(1).Cells(r, "C").Value2
arrData(9, DataIndex) = .Sheets(1).Cells(r, "D").Value2
arrData(15, DataIndex) = .Sheets(1).Cells(r, c).Value2
arrData(16, DataIndex) = .Sheets(1).Cells(r, "I").Value2
End If
Next c
Next r
.Close False
End With
If DataIndex > 0 Then
wsDest.Cells(nRow, "H").Resize(UBound(arrData, 2), 16).Value = Application.Transpose(arrData)
wsDest.Range("H4", wsDest.Cells(Rows.Count, "H").End(xlUp)).NumberFormat = "mmmm d, yyyy"
End If
Application.ScreenUpdating = True
End If
End With
End Sub
Bookmarks