2017-09-04 7 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

で「テスト」を置き換えますテキストボックスに入力されたデータ全体を分割しますが、連続して格納しません。私の期待される出力は、同じデータであろうとなかろうと、分割されたデータを格納することができるかどうかにかかわらず、データをテキストボックスに置くたびに出力されます。 –

+0

私はあなたが言っていることを完全には分かりません。データが入っているセルを上書きしたくないと言っていますか? – Tom

+0

はい、まさに私は何をしたいのですか?しかし残念なことに私の問題についての良いチュートリアルが見つかりませんhmmm –

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 
関連する問題