Visual Basic应用程序Excel中的连续拆分文本

时间:2017-09-04 08:33:52

标签: excel vba excel-vba

这是我在Active X Control中使用文本框和按钮分割文本的示例输出。正如你在这里看到的“Hello World!”在文本框中输入,输出是分割文本。

但我想要的是每当我在文本框中输入一些数据时,它会连续地提供分割文本,换句话说,单元格会保留我在文本框中输入的历史数据。

因为它只是提供分割文本,但在文本框中输入新数据时不保留它。我想要这个输出,因为我将使用所有历史分割文本并在计算最多次数后计算它我将为我的项目制作描述性图形

这是我的代码:

Sub SplitText()
    Dim TextString As String, WArray() As String, Counter As Integer, Strg As String

    TextString = TextBox1
    WArray() = Split(TextString, " ")

    For Counter = LBound(WArray) To UBound(WArray)
        Strg = WArray(Counter)
        Cells(Counter + 2, 1).Value = Trim(Strg)
    Next Counter
End Sub

sampleoutput1

sample output2

2 个答案:

答案 0 :(得分:1)

Sub SplitText()
Dim TextString As String, WArray() As String, Counter As Integer, Strg As String
TextString = TextBox1
WArray() = Split(TextString, " ")

For Counter = LBound(WArray) To UBound(WArray)
    Strg = WArray(Counter)
    Cells(Counter + 2, 1).Value = Trim(Strg)
Next Counter

Sheets("Original values").Range("A" & Sheets("Original values").Rows.Count).End(xlUp).Offset(1).Value = TextString

End Sub

答案 1 :(得分:1)

您可以在不循环的情况下执行此操作

编辑: 已更新,可附加到列的末尾

Sub SplitText()
    Dim WArray As Variant

    WArray = Split(TextBox1, " ")
    With Sheets("DatabaseStorage")
        .Cells(.Rows.Count, 1).End(xlUp).Offset(1, 0).Resize(UBound(WArray) + IIf(LBound(WArray) = 0, 1, 0)) = Application.Transpose(WArray)
    End With
End Sub