Convert Variable Array to String
The value you are trying to join is not an array of strings. Join is supposed to be used on arrays
Here is the link to the Microsoft instructions: https://msdn.microsoft.com/en-us/library/b65z3h4h%28v=vs.90%29.aspx
Their example is:
Dim TestItem() As String = {"Pickle", "Pineapple", "Papaya"}
Dim TestShoppingList As String = Join(TestItem, ", ")
You code should look something like:
Dim i As Integer
Dim cell As Range
Dim val() As Variant '() indicate it is an array
i = 0
For Each cell In Range("packing_list[Code]")
ReDim Preserve val(0 to i) As Variant 'must resize array to fit number of items
val(i) = cell.Value 'i is the position of the item in the array
i = i + 1 'increment i to move to next position
Next cell
'Now that you have an array of values (i.e. ("String1", "String2", ...) instead of just "String" you can:
MsgBox Join(val, "//")
Tranpose
can be used to produce a 1D array or strings for an individual column or row.
So for A1:A10
you could used just
MsgBox Join(Application.Transpose([a1:a10]), ",")
to work on a row you need a second Transpose
, so for A1:K1
MsgBox Join(Application.Transpose(Application.Transpose([a1:k1])), ",")