2017-08-02 87 views
0

對於MWE,並複製我的問題,在一個空白工作簿將文本使用`在VBA split`功能查找文本多久包含特定符號

testone|testtwo 

進入第一個單元格,A1 。

然後,VBA代碼應爲:

Sub test() 

MsgBox "testone|testtwo" 
MsgBox Cells(1, 1).Text 
MsgBox Split("testone|testtwo", "|") 
MsgBox Split(Cells(1, 1).Text, "|") 
Msgbox Split(Cells(1, 1).Text, "|").Length 

End Sub 

現在,已經是第二次給我一個錯誤,類型不匹配。

我需要的是我面臨一個潛在的長字符串,其中n+1不同長度的子字符串被n發生的符號|發生。我需要提取每個子字符串,即符號的兩個實例中的那些n-1,以及兩個開頭處的字符串。我相信,但我不確定,使用split功能是最好的。在下一步中,想要使用結果的Length來計算|(如最後一行中)的出現次數,但這也不起作用。

+0

嗨,你可以重寫n + 1或n。從我所理解的字符串中加上'|'。你的目標是計算'|'的出現次數並且還要將字符串從'|'分開那是對的嗎? – fcsr

+0

是的,確實如此。但我不明白你想以什麼方式重寫「n」和「n + 1」。 –

+0

不好意思,所以我很困惑。如果你的目標是獲得「|」的出現次數那麼braZ下面的答案會給出正確的答案。 vSplit將會存儲一個拆分詞的數組。 Ubound將返回數組的最高索引號。 「Test1 | Test2」將被拆分爲索引爲[0,1]的Array(Test1,Test2),最高索引將爲1,這也是「|」的出現次數。 Ubound + 1將返回字符串的數量,因爲最高索引是1 + 1將等於2,數組索引從0開始。 – fcsr

回答

2

存放在數組中的分裂

Dim vSplit as Variant 
vSplit=Split("testone|testtwo", "|") 

然後拿到多少項目數:

nCount = UBound(vSplit) + 1

如果你想有多少的計數「|」在字符串...

nCount = UBound(vSplit)