存储在剪贴板中的表
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
我通过电子邮件收到 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