Option Explicit
Public pClipboardRows As Long
Public pClipboardColumns As Long
Sub subEvaluateClipboard()
'Узнаём размер диапазона ячеек в буфере обмена
'Проверяем, таблица ли в буфере обмена?
Dim formats, fmt
formats = Application.ClipboardFormats
For Each fmt In formats
If fmt = xlClipboardFormatCSV Then GoTo Continue:
Next
pClipboardRows = 0
pClipboardColumns = 0
Exit Sub
Continue:
Dim CB As New MSForms.DataObject
Dim var As Variant
Dim rw As Variant
On Error Resume Next
CB.GetFromClipboard
var = CB.GetText
On Error GoTo 0
rw = Split(var, vbCrLf)
pClipboardRows = UBound(rw)
pClipboardColumns = UBound(Split(rw(0), vbTab)) + 1
End Sub