我正在嘗試編寫一個Do循環,它將輸入一個長字符串,並返回電子郵件地址之前的空間位置和之後的空間位置。使用InStr()我已經能夠找到電子郵件地址的結尾。現在我需要找到開始,然後使用Mid()來拉出地址。我發現InStrRev()應該從一個字符串的末尾開始,然後搜索,但是看看它出現的實際手冊,它只是給出了字符的第二個實例。例如:InStrRev()問題
我的字符串是:
請拍我的電子郵件。我的電子郵箱:[email protected]如果你不能打電話給我。
我到目前爲止所做的是返回@的地方,在這種情況下,如果是42.然後我使用InStr()返回@之後的第一個「」的位置。在這種情況下,52.我希望返回第一個「」之前的位置。在這種情況下,它應該是37.我的計劃是使用Mid(37,15)。十五是差異52 & 37.我嘗試過使用InStrRev()返回37,但無法讓它工作。有什麼建議麼?下面是我的代碼。
x = 2
Do
Cells(x, 11).Select
Cells(x, 11).Value = (InStrRev(Cells(x, 9), Cells(x, 2), " "))
x = x + 1
On Error Resume Next
Loop Until Cells(x, 2).Value = ""
其中(x,9)是@和地點(X,2)是字符串。
很好地完成,+1 – Jesse 2012-03-02 21:16:04
+1我不知道'Filter'。 – 2012-03-03 09:18:54
感謝+ 1s,過濾器和拆分是在Excel VBA中最有用的東西之一,NB與Filter的事情是,它返回部分匹配,這就是爲什麼它在這裏工作,但需要一些漂亮的字符串操作來返回只完整匹配。 – SWa 2012-03-04 19:29:27