Function cellsToArray(r As Range)
Dim a()
r.Copy
a = ClipboardToArray
cellsToArray = a
Application.CutCopyMode = False
End Function
Function ClipboardToArray()
Dim cb As Object 'Late Binding for MsForms.DataObject
'Dim cb As New MsForms.DataObject 'Early Binding
Dim s() As String, ss() As String, se As String, a()
Dim i As Long, j As Long
'Late Binding
Set cb = CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
'On Error GoTo AnError
'Get data from the clipboard.
cb.GetFromClipboard
'Get clipboard contents
se = cb.GetText(1)
'Split se, delimiter vbcrlf
s() = Split(se, vbCrLf)
ss() = Split(s(0), vbTab)
ReDim a(LBound(s) To UBound(s), LBound(ss) To UBound(ss))
'~~> Split each strArray and store in strArray2, delimiter " ".
For i = LBound(s) To UBound(s)
ss = Split(s(i), vbTab)
For j = LBound(ss) To UBound(ss)
a(i, j) = ss(j)
Next j
Next i
ClipboardToArray = a()
Exit Function
AnError:
If Err <> 0 Then Debug.Print Err.Description
End Function