arrays - 如何将剪贴板放入二维数组(excel vba)

标签 arrays vba excel

我对 Excel VBA 非常陌生,我想将剪贴板中的文本放入二维数组中,第一个分隔符为 vbNewLine,第二个分隔符为空格。如何创建大小未知的二维数组?我可以拆分一个数组,就像下面我失败的地方吗?

Sub CommandButton1_Click()
    Dim DataObj As MsForms.DataObject
    Set DataObj = New MsForms.DataObject
    Dim strArray() As String

    On Error GoTo ERRROR

    '~~> Get data from the clipboard.
    DataObj.GetFromClipboard

    '~~> Get clipboard contents
    myString = DataObj.GetText(1)

    '~~> Split into string, delimiter vbNewLine
    strArray = Split(myString, vbNewLine)

这是我失败的地方
    '~~> Split each strArray and store in strArray2, delimiter " ".
    Dim strArray2() As String
    For ii = LBound(strArray2) To UBound(strArray2)
        strArray2(ii) = Split(strArray(ii))
    Next ii

Exit Sub
ERRROR:
    If Err <> 0 Then    
    'Handel error
End If
End Sub

最佳答案

你做错了。

这是你正在尝试的吗? ( 未测试 )

Sub CommandButton1_Click()
    Dim DataObj As MsForms.DataObject
    Dim strArray, strArray2
    Dim i As Long, j As Long
    Dim myString As String

    On Error GoTo ERRROR

    Set DataObj = New MsForms.DataObject

    '~~> Get data from the clipboard.
    DataObj.GetFromClipboard

    '~~> Get clipboard contents
    myString = DataObj.GetText(1)

    '~~> Split myString, delimiter vbNewLine
    strArray = Split(myString, vbNewLine)

    '~~> Split each strArray and store in strArray2, delimiter " ".
    For i = LBound(strArray) To UBound(strArray)
        strArray2 = Split(strArray(i))

        For j = LBound(strArray2) To UBound(strArray2)
            Debug.Print strArray2(j)
        Next j
    Next i

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

关于arrays - 如何将剪贴板放入二维数组(excel vba),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27184533/

相关文章:

c - 我想知道我在 C 中如何错误地读取(或写入)数组中的元素?

c++ - 有没有一种方法可以使用非常量变量初始化数组? (C++)

sql - 关于dsn字符串的查询

Excel:ClearContent 保留公式

vba - 如果单元格返回错误则运行宏的宏

arrays - 计算数组平均值的高效并行调度算法

vba - VBA 可以跨 Excel 实例吗?

mysql - 变量在 IN 子句中不起作用

php - 如何拆分包含多个工作表的 Excel 文件?

c++ - 如何将指针数组分配给数组