2011-01-05 66 views
1

只驗證字符串值,我希望用戶在Excel單元格中輸入字符只有.. 我用ISTEXT(值)在Excel中的自定義公式,但不能得到正確的字符串輸出像hgdashj2132154請幫忙... 謝謝你..公式在E​​xcel

+1

你期待的hgdashj2132154輸出什麼?換句話說,你得到的是什麼錯誤? – 2011-01-05 19:35:06

+0

它只是一個自定義驗證的Excel,我想要自定義公式爲Excel只接受字符串(只有字符)... – Smack 2011-01-06 05:19:34

回答

2

Smack,我在書籤網站上找到了這個。它本質上是相同的概念馬克·蒂博的建議,但不需要任何額外的引用:

http://www.techonthenet.com/excel/formulas/alphanumeric.php

+0

謝謝:-)你的鏈接是非常有用的,但我在Excel中使用Excel模板(xlt)不在vb中...我們可以在Excel模板中添加宏嗎?當我在視覺stdio中打開微型編輯器時,它不會打開excel的微型編輯器.... – Smack 2011-01-07 10:15:02

3

它只需要一點正則表達式的魔力。您需要用戶定義的函數和正則表達式加載項。在Developer視圖中,轉到Tools | References並選中Microsoft VBScript Regular Expressions 5.5。

這裏的功能:

Public Function isOnlyAlpha(myText) As Boolean 
    Dim regEx 
    Set regEx = New RegExp 'Regular expression object 
    regEx.Pattern = "^[a-zA-Z]*$" ' Set pattern. 
    isOnlyAlpha = regEx.Test(myText) ' Test for match 
End Function 

結果:

=isOnlyAlpha("hgdashj2132154") 
False 

=isOnlyAlpha("hgdashj") 
True 

如果你寧可沒有正則表達式,總是有 「象環」:

Public Function IsOnlyAlpha(Value As String) As Boolean 
    IsOnlyAlpha = True 
    Dim i As Integer 
    For i = 1 To Len(Value) 
     IsOnlyAlpha = IsOnlyAlpha And (Mid(Value, i, 1) Like "[A-Za-z]") 
    Next i 
End Function 
+0

感謝您的迴應,但可以詳細說明如何添加UDF和REGX插件在Excel中。我在做編碼在excel模板上的c#中,我無法在excel的開發人員選項卡中找到工具 - >引用... – Smack 2011-01-06 05:15:16

+0

工具 - >引用是在VBA窗口中,而不是在Excel窗口中 – 2011-01-07 01:50:09

+0

鍵Alt-F11,然後選擇工具|參考 – 2011-01-07 04:07:47

1

純VBA方法:

(我編輯我的答案使用Like運算符,而不是IsNumeric函數。現在只有字符a到z被視爲而不是隻非數字字符有效。)

Public Function IsOnlyAlpha(Value As String) As Boolean 

If Len(Value) = 0 Then 

    IsOnlyAlpha = False 
    Exit Function 

End If 

Dim i As Integer 
For i = 1 To Len(Value) 

    If Not Mid(Value, i, 1) Like "[A-Za-z]" Then 

     IsOnlyAlpha = False 
     Exit Function 

    End If 

Next i 

IsOnlyAlpha = True 

End Function