2016-06-15 4 views
0

私が持っているExcelの電話番号の巨大な長いリストをフォーマットするためにカスタム定義のUDF関数を使用しようとしています。私がこのExcelファイルに追加する今後の電話番号のエントリと同様に。ExcelのUDFカスタムセルフォーマットで何も返さない(空のセル)または「書式設定されたユーザー入力」

脇に:UDF自体は電話番号をきれいにフォーマットするだけなので、拡張子の有無にかかわらず電話を入力するかどうかにかかわらず、より読みやすいようにフォーマットされます。 私はそれをオンラインで見つけ、自分のニーズに合うように調整しました。それは私の質問ではありません実際には、

私の質問はどのように私の入力の価値を受け取り、値を持たないすべてのセルの#VALUEを返さずにセルの書式設定として適用することができますまだ。

アイブの効果に何かを試してみました:

= IF(ISBLANK、 ""、= CustomUDF(cellvalue))

が、これは、仕事をするだろうと思ういけません。

あなたは私のUDFを見たい場合は、ここではそれだけで次のコードを追加します!:

Function cleanPhoneNumber(thisNumber As String) As String 
    ' this function aspires to clean any phone number format 
    ' to standard format (+9999) 999-999-9999 or 999-999-9999 
    ' works with almost all phone number formats stored in text 

Dim retNumber As String 

For i = 1 To Len(thisNumber) 
    If Asc(Mid(thisNumber, i, 1)) >= Asc("0") And Asc(Mid(thisNumber, i, 1)) <= Asc("9") Then 
     retNumber = retNumber + Mid(thisNumber, i, 1) 
    End If 
Next 
If Len(retNumber) > 10 Then 
    ' format for country code as well 
    cleanPhoneNumber = Format(retNumber, "000-000-0000-0000") 
Else 
    cleanPhoneNumber = Format(retNumber, "000-000-0000") 
End If 
End Function 

答えて

1

です:

if thisNumber = "" Then cleanPhoneNumber = "" 
0

または代わりに:

=IF(cellvalue="", "", =CustomUDF(cellvalue)) 
0

理由だけではなく、まだ番号を持たないセルをカスタム形式でフォーマットします。000-000-0000-0000

関連する問題