0

I am learning Excel-VBA and I am trying to learn how to do things that will help me in the future. I have been trying to learn how to do a simple split without a loop. Although I got a code that I could use, I could not understand it.
Excel VBA- Copy and paste text on left after CHAR(10)

I have this mock from what I learned in the code I was pointed towards. I feel like I am close but no matter what I do I can not make the syntax work. Any help would be greatly appreciated.

I attached the code and a snippet of what I would like to see before and after. My code does not work in this line.

Worksheets("Sheet1").Cells(1, 2).Value = fullname

The code is below

   Sub test()

    Dim txt As String
    Dim fullname As String

    txt = Worksheets("Sheet1").Cells(1, 1).Value
    fullname = Split(txt, Chr(10))

    Worksheets("Sheet1").Cells(1, 2).Value = fullname

    End Sub

enter image description here

2 Answers 2

1

It fails because fullname is an Array. To get the first element:

Worksheets("Sheet1").Cells(1, 2).Value = fullname(0)
Sign up to request clarification or add additional context in comments.

Comments

0

As Gary's Student says - fullname will be an array. The first problem you'll have is a type mismatch as you've declared fullname as a string.

You can paste an array into a range of cells or reference elements of the array as Gary said in his answer.

Sub test()

    Dim txt As String
    Dim fullname As Variant

    txt = Worksheets("Sheet1").Cells(1, 1).Value

    'This will be an array containing 4 different values
    'based on your A1 cell containing 3 line breaks.
    fullname = Split(txt, Chr(10))

    With Worksheets("Sheet1")

        'The array must be pasted into 4 cells.
        '.Range(.Cells(1, 2), .Cells(1, UBound(fullname) + 2)) = fullname

        'the above line is the same as:
        .Range("B1:E1") = fullname

    End With

End Sub

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.