Not very elegant, and I'm not sure how well it will work in bulk, but it avoids the loop. You can put the final output in a string and replace:
Dim x As Variant, y As String x = Range("A1:Z1") With WorksheetFunction x = .Transpose(.Transpose(ActiveSheet.Cells(1, 1).Resize(1, 5).Value)) End With y = Join(x, "|") y = Replace(y, "/01/", "-Jan-") y = Replace(y, "/02/", "-Feb-") y = Replace(y, "/03/", "-Mar-") y = Replace(y, "/04/", "-Apr-") y = Replace(y, "/05/", "-May-") y = Replace(y, "/06/", "-Jun-") y = Replace(y, "/07/", "-Jul-") y = Replace(y, "/08/", "-Aug-") y = Replace(y, "/09/", "-Sep-") y = Replace(y, "/10/", "-Oct-") y = Replace(y, "/11/", "-Nov-") y = Replace(y, "/12/", "-Dec-") Debug.print y
source share