Excel VBA Check Email Format

本身set 左 DV
= ISNUMBER(MATCH("*@*.?*",AF2:AF2,0))
去阻止D人入錯野.....

點知佢地用複製貼上.......突破左DV............
依然入錯格式既Email比我.....

依家我想用VBA去搵邊隻錯格式 , 然後果格就轉紅色.
但係唔知點寫呢句 "*@*.?*"
  1. Private Sub CommandButton1_Click()


  2. For r = 1 To Range("a1").CurrentRegion.Rows.Count
  3.         
  4.             If LCase(Range("a" & r)) = ("*@*.?*") Then
  5.             
  6.                 Range("a" & r).Interior.ColorIndex = 0
  7.                
  8.         Exit For

  9.             Else

  10.                 Range("a" & r).Interior.ColorIndex = 3

  11.             End If
  12.             
  13.     Next r
  14.    
  15. End Sub
複製代碼

TOP

用Regex
d-snake 發表於 2019-12-15 16:30


睇唔明佢做緊咩.....
Google 到都係差唔多既野....睇唔明.......

C兄可唔可以解釋一下每句發生緊咩事......

我停留係IF THEN ELSE 同FOR LOOP 階段
其他未識住......
  1. Function ValidEmail(ByVal emailAddress)

  2. 'this function will use regular expressions to check an '
  3. 'email address for validity '

  4. 'instantiate regex object container, output boolean '
  5. Dim objRegEx, retVal

  6. 'using late binding, vbscript reference is not required '
  7. Set objRegEx = CreateObject("VBScript.RegExp")

  8. '.pattern -looks for a valid email address '
  9. With objRegEx
  10.       .Pattern = "^\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b$"
  11.       .IgnoreCase = True
  12. End With

  13. retVal = objRegEx.Test(emailAddress)

  14. 'get rid of RegEx object '
  15. Set objRegEx = Nothing

  16. ValidEmail = retVal

  17. End Function
複製代碼

TOP

提示: 作者被禁止或刪除 內容自動屏蔽

TOP

本身set 左 DV
= ISNUMBER(MATCH("*@*.?*",AF2:AF2,0))
去阻止D人入錯野.....

點知佢地用複製貼上....... ...
黑道明 發表於 2019-12-14 19:50


最簡單係用 filter, 做唔到十全十美, 都做到九成幾
Clipboard04.jpg

TOP

提示: 作者被禁止或刪除 內容自動屏蔽

TOP

用filter唔得喎
@abc.

abc.@com
abc@abc.
以上呢D應該全部pass當無問題, 實際就錯到gg ...
myricky 發表於 2019-12-16 11:20


因為果 2 個 filter 只係簡單舉例, 只搵出無 . 及 @
其實個變化仲有好多玩法.
Clipboard02.jpg

TOP

提示: 作者被禁止或刪除 內容自動屏蔽

TOP

filter係測唔到先後次序的(除左最前最後), 而"@"同"."又唔係最前後, 所以一定唔work ...
myricky 發表於 2019-12-16 13:42


最簡單方法係用 filter, 原先, 無乜點諗, 就將無 . 同 @ 嘅抽取嚟

諗深一層, 用 *@*.* 就基本上解決, 但係都有你引述的情況

再深一層, 用 ?*@?*.?*  就解決 .同 @ 之後缺字情況, 不過, 解決唔到 . 開頭, 咪用第二個 filter

我諗, 基本上解決百分之九十幾.

再有新情況, 就再改.

TOP

睇唔明佢做緊咩.....
Google 到都係差唔多既野....睇唔明.......

C兄可唔可以解釋一下每句發生緊咩事... ...
黑道明 發表於 2019-12-15 17:59



成段code係一個function
ValidEmail("abc@test.com") 會return true
ValidEmail("abc@test") 會return false

TOP