2017-09-04 26 views
0

這裏是我在Active X控件中使用文本框和按鈕的拆分文本示例輸出。正如你在這裏看到的「Hello World!」被輸入到文本框中並且輸出被分割文本。Visual Basic應用程序在Excel中連續拆分文本

但我想要的是每次我在文本框上輸入一些數據時,它會連續給出分割文本,換句話說,單元格會保留我在文本框中輸入的歷史數據。

因爲它只是給文本分割的文本,但沒有保留它在文本框中輸入新的數據。我想這個輸出,因爲我會用歷史分裂的所有文字和計數最發生後算什麼,我會做一個描述性的圖表爲我的項目

這裏是我的代碼:

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

+0

這是非常簡單的解決的結束 - 如果你想存儲原始輸入? – Jeremy

+0

我想存儲所有的歷史數據到另一個工作表先生 –

+0

回答下面:) – Jeremy

回答

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

它分割但不連續存儲輸入到文本框1中的全部數據。我的預期輸出是每次我把數據放在文本框中,不管是否有相同的數據,它都可以存儲分割的數據。 –

+0

我不完全確定你在說什麼。你是說你不想覆蓋其中有數據的單元嗎? – Tom

+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