断裂线上的新数组维度

New array dimension on break line

我正在将剪贴板中的数据放入我的数组中并用新行拆分它。但我还需要一个由标签分割的第二维,但不知道如何?剪贴板中的数据应该具有固定大小,因此每行的部分数将相同。

到目前为止我有什么

Private Sub btnPaste_Click()

    Dim Clipboard As MSForms.DataObject
    Dim arrClip As Variant
    Dim i As Long
    Dim str As String
    Dim msg As String


    On Error GoTo ERRORHAND

    Set Clipboard = New MSForms.DataObject
    Clipboard.GetFromClipboard

    str = Clipboard.GetText(1)
    arrClip = Split(str, vbLf)

    For i = LBound(arrClip) To UBound(arrClip)
        msg = msg & arrClip(i) & vbLf
    Next

    MsgBox (msg)

    Exit Sub

ERRORHAND:
    If Err <> 0 Then Debug.Print Err.Description
End Sub

这为我提供了一个数组,其中包含来自剪贴板的每一行的新元素,但我不知道如何将元素添加到剪贴板中找到的每个 'tab' 的第二维?

剪贴板中的数据示例以及我希望它如何填充数组

剪贴板中的数据

Data00        Data10        Data20        Data30
Data01        Data11        Data21        Data31
Data02        Data12        Data22        Data32
Data03        Data13        Data23        Data33
etc...

应该是对应的数组元素

Array(0,0)    Array(1,0)    Array(2,0)    Array(3,0)
Array(0,1)    Array(1,1)    Array(2,1)    Array(3,1)
Array(0,2)    Array(1,2)    Array(2,2)    Array(3,2)
Array(0,3)    Array(1,3)    Array(2,3)    Array(3,3)
etc...

这是您添加了一些内容的代码(希望对您有所帮助)

Sub btnPaste_Click()

    Dim Clipboard As MSForms.DataObject
    Dim arrClip As Variant
    Dim i As Long
    Dim str As String
    Dim msg As String

    Dim arrClip2 As Variant
    Dim arrClipBid() As Variant
    Dim ii As Integer

    'On Error GoTo ERRORHAND

    Set Clipboard = New MSForms.DataObject
    Clipboard.GetFromClipboard

    str = Clipboard.GetText(1)
    arrClip = Split(str, vbLf)

    ReDim arrClipBid(LBound(arrClip) To UBound(arrClip), 0 To 0)

    For i = LBound(arrClip) To UBound(arrClip)
        arrClip2 = Split(arrClip(i), Chr(9))
        If MaxLen < UBound(arrClip2) Then
            MaxLen = UBound(arrClip2)
            ReDim Preserve arrClipBid(LBound(arrClip) To UBound(arrClip), 0 To MaxLen)
        End If
        For ii = LBound(arrClip2) To UBound(arrClip2)
            arrClipBid(i, ii) = arrClip2(ii)
            msg = msg & "(" & i & ", " & ii & ")" & arrClip2(ii)
        Next ii
        msg = msg & vbLf
    Next

    MsgBox (msg)

    Exit Sub

ERRORHAND:
    If Err <> 0 Then Debug.Print Err.Description
End Sub