存储在剪贴板中的表

Tables stored in clipboard

我通过电子邮件收到 table。 然后我复制 table 并想使用 VBA 来使用 MS Excel 填充列表框中的数据。 但是,当我使用 GetText 方法时,找不到列分隔符。我本以为会出现 Tab,因为这是我将 table 粘贴到记事本 ++ 时看到的内容。 相反,我在列之间得到 2 或 3 个空格。 知道如何分隔剪贴板中的列吗?

首先在 vbNewline 上拆分,然后 在 vbTab 上每行拆分以在内存中创建一个数组,最后使用索引检索列。 (但首先将其放入列表框(内存)然后取出一列对我来说看起来更容易)

Private Sub CommandButton1_Click()
Dim DataObj As MsForms.DataObject
Set DataObj = New MsForms.DataObject
Dim mytxt As String, arr() As String
Dim ff() As String, qq() As String, i As Integer, j As Long

DataObj.GetFromClipboard
    mytxt = DataObj.GetText(1)
    arr() = Split(mytxt, vbNewLine)
        ReDim ff(1 To UBound(arr), 1 To UBound(Split(arr(0), vbTab)) + 1)
            For i = 1 To UBound(arr)
                qq = Split(arr(i - 1), vbTab)
                    For j = 1 To UBound(qq) + 1
                        ff(i, j) = qq(j - 1)
                    Next j
            Next

ListBox2.List = Application.Index(ff, 0, 2) '2nd column

End Sub