2014-11-28 5 views
2

저는 Excel VBA에 익숙하며 클립 보드에서 텍스트를 첫 번째 구분 기호 vbNewLine 및 두 번째 구분 기호 공간을 사용하여 2D 배열로 가져 오려고합니다. 알 수없는 크기의 2D 배열은 어떻게 만듭니 까? 내가 실패한 곳에서 아래처럼 배열을 분할 할 수 있습니까? 여기클립 보드를 2D 배열로 가져 오는 방법 (Excel vba)

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 

답변

2

실패 여기에있다.

이게 너가하려는거야? (UNTESTED)

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 
+0

내가 뭘 하려는지 매우 비슷해 보인다! 감사! 일 후에 시험 해보겠습니다. – uranibaba

관련 문제