That's OK, but I suggest the following to ensure that you're going in the right direction
Option Explicit
Sub JoinString()
Dim xJoinRange As Range, xDestination As Range, Rng As Range
Dim Delimiter As String, OutputValue As String
Dim bRows As Boolean
Dim r As Long, c As Long
On Error Resume Next
Set xJoinRange = Application.InputBox(prompt:="Select source cells to merge", Type:=8)
If xJoinRange Is Nothing Then Exit Sub
On Error GoTo 0
On Error Resume Next
Set xDestination = Application.InputBox(prompt:="Select destination cell", Type:=8)
If xDestination Is Nothing Then Exit Sub
On Error GoTo 0
Delimiter = Application.InputBox(prompt:="Delimiter", Type:=2)
bRows = (MsgBox("[Yes] = Across Rows, [No] = Down Columns", vbQuestion + vbYesNo, "Up or Down") = vbYes)
If bRows Then
For r = 1 To xJoinRange.Rows.Count
For c = 1 To xJoinRange.Columns.Count
If Len(Trim(xJoinRange.Cells(r, c).Value)) > 0 Then
OutputValue = OutputValue & xJoinRange.Cells(r, c).Value & Delimiter
End If
Next c
Next r
Else
For c = 1 To xJoinRange.Columns.Count
For r = 1 To xJoinRange.Rows.Count
If Len(Trim(xJoinRange.Cells(r, c).Value)) > 0 Then
OutputValue = OutputValue & xJoinRange.Cells(r, c).Value & Delimiter
End If
Next r
Next c
End If
xDestination.Value = Left(OutputValue, Len(OutputValue) - Len(Delimiter))
End Sub
Capture.JPG