2014-10-30 31 views
0

我需要一個宏找到如下字符:如果某些字符然後加上逗號

If character like "[A-Z]", "[a-z]", "[A-Z]" then...... 

用括號:

我有嘗試過這種「大寫」,「小寫」,「大寫」不同的地方,它不會工作。

請讓我知道我做錯了什麼

+0

能否請您做一個例子嗎?如果我理解了,你想在「StAcKoverflow」中找到序列「AcK」,不是嗎?你想用這個子字符串做什麼?刪除它,存儲它還是還有什麼?請詳細說明你的問題。 – 2014-10-30 16:43:35

+2

我編輯了你的標題。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 – 2014-10-30 16:55:52

+0

@MatteoNNZ這將是如果AcK然後Ac,K – Nick 2014-10-30 17:15:51

回答

1

使用公式可以嗎?

=IF ( AND (ISNUMBER(FIND((MID(B4,1,1)),$D$4,1)), 
       ISNUMBER(FIND((MID(B4,2,1)),$D$5,1)), 
       ISNUMBER(FIND((MID(B4,3,1)),$D$4,1))      
      ), 
     "True", 
     "False") 

其中 小區B4包含測試,E,G你的文字, 「ACK」

cell D4 contains the string "ABCDEFGHIJKLMNOPQRSTUVWXYZ" 

    cell D5 contains the string "abcdefghijklmnopqrstuvwxyz" 
+0

這些都不是竅門 – Nick 2014-10-30 19:03:00

+0

@Nick A稍微變化:'= IF(AND(ISNUMBER(FIND((MID(B4,1,1)),$ D $ 4,1)),ISNUMBER(FIND((MID(B4,2,1)),$ D $ 5 ,1)),ISNUMBER(FIND((MID(B4,3,1)),$ d $ 4,1))),LEFT(B4,2) 「」 &MID(B4,3,1),B4) ' - 這是否有效? – pnuts 2014-10-30 20:16:55

+0

@pnuts這似乎並沒有工作。它只是將文本複製到我在 – Nick 2014-10-30 20:42:52

2
? "AcK" like "[A-Z][a-z][A-Z]" '>> True 

? "ACK" like "[A-Z][a-z][A-Z]" '>> False 
+0

不是第二個。但第一個是我需要的。那麼我可以把它當作是如果像「[A-Z] [a-z] [A-Z]」那麼??在[A-Z] [a-z]和[A-Z]之間添加逗號。 所以最後它會是[A-Z] [a-z],[A-Z] – Nick 2014-10-30 17:18:08

+1

第二個只是在那裏,以證明第一個實際上工作... – 2014-10-30 18:12:47

+0

哦gotcha。但是,如何讓它在包含其他單詞的單元格中找到,並用逗號分隔小寫字母和第二個大寫字母? – Nick 2014-10-30 19:40:30

0

如果我明白你的目標,努力在項目中包含這樣的功能:

Public Function editString(ByVal nativeString As String) As String 

    Dim subStr As String, subStr2 As String 

    For j = 1 To Len(nativeString) 

     subStr = Mid(nativeString, j, 3) 
     If subStr Like "[A-Z][a-z][A-Z]" Then 
      subStr2 = Left(subStr, 2) & "," & Right(subStr, 1) 
      nativeString = Replace(nativeString, subStr, subStr2) 
     End If 

    Next j 

    editString = nativeString 

End Function 

...然後修改字符串對象只需將它們傳遞給函數:

Public Sub ModifyString() 
    Dim newString As String: newString = editString("stAcKoverflow") 
End Sub 

你應該得到你想要的。