2017-09-19 5 views
2

私はExcelファイルを持っているので、 "。"の数を数える必要があります。各セルについて。 1つのセルにいくつかの文字があります(たとえば 'A01.10.10.10') 1つのセルの内容を配列に転送できますか?配列のようなExcelセルを使用する

+5

'arr(0)= myCell.Value'または' arr = Split(myCell.Value、 "。") 'を意味しましたか? –

答えて

4

あなたはこのためにSplit()を使用することができます。

myArray = Split(Range("A1"), ".") 

配列への期間による「スプリット」Range("A1")内容になります。


リターンが( dimに配列を必要をスキップ)配列であるので、あなたはまた、単にUBOUNDを取得するために split()関数の戻りにまっすぐに行くことができる

UBound(Split(Range("A1"),".")) 

は唾を吐くだろうあなたの意見をお寄せください3

+0

答えはその例では3です – Tom

+0

ああ、@トム!誤解を与えないように修正しました。 – JNevill

+0

また、Splitの出力を設定しないでください。 'myArray = Split(Range(" A1 ")、"。 ")' – Tom

2

なぜこれを行うにはアレイが必要ですか?

あなたは

=LEN(A1)-LEN(SUBSTITUTE(A1,".","")) 

それともVBA

Sub CountDots() 
    Dim str As String 
    str = "A01.10.10.10" 
    MsgBox Len(str) - Len(Replace(str, ".", vbNullString)) 
End Sub 

アレイの必要性を全く使用してExcelの数式であなたの答えを得ることができます。文字列を使って何か他のことをするつもりなら、@ JNevill答えを使用してください。

+2

Dammit @Tomは、まったく同じ式を貼り付けようとしていました... '= LEN(A1)-LEN(置換、A1。"、 "")) ':) –

+2

くそー、私len/subメソッドで私の答えを入力してください。そして、あなたにあなたのアップデートがあったのを見ました...そしてあなたもそれを追加しました。 – Cyril

1

"。"式を使用して単一のセル内で計算することができます。

=Len(targetcell)-Len(Substitute(targetcell,".","")) 

セルの数をカウントし、「。」の後のセルの数をカウントします。 ""(何もない)に置き換えられました。

あなたは配列を必要としません。

関連する問題