excel vba - 简单拆分,无循环

时间:2015-05-21 15:05:07

标签: excel-vba vba excel

我正在学习Excel-VBA,我正在努力学习如何做将在未来帮助我的事情。我一直在努力学习如何在没有循环的情况下进行简单的拆分。虽然我得到了一个我可以使用的代码,但我无法理解它 Excel VBA- Copy and paste text on left after CHAR(10)

我从我所指出的代码中学到了这个模拟。我觉得我很亲密,但无论我做什么,我都无法使语法工作。任何帮助将不胜感激。

我附上了代码和我希望在之前和之后看到的内容片段。我的代码在这一行中不起作用。

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

代码在

之下
   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 个答案:

答案 0 :(得分:1)

失败,因为 fullname 数组。获得第一个元素:

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

答案 1 :(得分:0)

正如Gary的学生所说 - fullname 将是一个阵列。您将第一个问题是类型不匹配,因为您已将 fullname 声明为字符串。

你可以将数组粘贴到一系列单元格或数组的引用元素中,正如加里在他的回答中所说。

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