2011-12-05 1 views
1

This questionは私が思った以上に面白くなり、私の目的のために直接問題を解決しました。TextToColumnsによって作成された列の数はいくつですか?

しかし、今私は答えが簡単であるべき質問がありますが、見つけられません。

TextToColumnsの処理が完了した後、どのようにして個の列が作成されましたかが作成されましたか? 結果の列数は可変です。分割が終了しても空白があるとは限りません。

TextToColumns関数が作成した列の数を返してもうまくいきますが、それはうまくいかないようです。

分割する前にカンマを数えたいとは思いません。例えば、TextToColumnsがうまく処理するような引用符の中にコンマが入っている状況があります。私が文字単位で数えなければならない場合、自分の分割関数を書くこともできます。

(私はこれを必要とする理由は、私は結果を転置するためのオプションを提供することができますです)

感謝。

+0

を分割(HRgigerの提案ソリューションが可能に)された値の右への「明確な」領域がありません場合、私はあなたがの最大数を決定するために、各セルの値をチェックして立ち往生していると思います列。または、スクリーン更新を使用して、分割するデータを新しいシートに移動して分割し、「usedrange.columns.count」アプローチを使用します。 –

+0

または、ワークシートのコピーで分割を実行し、元のシートを作業シートと比較して新しいサイズを取得し、作業シートを破棄し、既知のサイズのコードを再開することができます。 – brettdj

答えて

0

UsedRangeで確認できます。例えば、下記をご覧ください:

Sub check() 
Dim before As Integer 
Dim after As Integer 
before = Sheet1.UsedRange.Columns.Count 
MsgBox before 
Range("A1").TextToColumns DataType:=xlDelimited, _ 
    Comma:=False, Space:=True 
after = Sheet1.UsedRange.Columns.Count 
MsgBox after 
MsgBox after - before 
End Sub 
+0

私のTtCコールがすでにデータを持っているセルを上書きする可能性もあります。だから私はそれが単にいくつの列が使用されているかを数えるだけではうまくいかないと思います。 – Josh

+0

@ジョシュ私はあなたがシートを追加し、上記を行うが、新しいシートに宛先を設定し、使用範囲を見つけると思います。もちろん、データをコピーするか、別のテキストを柱にすることはあなたの責任です。 –

+0

私はこの解決策にはまったく満足していませんが、隠しシートでこれをやっているように聞こえます。オプション。 – Josh

関連する問題