2017-10-08 9 views
-1

私は1つのフォーマットタイプに統合する必要のある32種類の電話フォーマットの列を持っています:(###)### - ####。目標は、このフォーマットされたデータを既存のdbにアップロードすることです。私は助けるいくつかの数式を見つけましたが、これらはヘルパーセルを必要とします。1つの電話フォーマットのVBAコード

10桁未満または10桁を超えるセルの一部は手動で修正されますが、まだ決定はされていないと思います。今のところ、通常の電話番号(10文字)よりも小さいか、それ以上のセルがあります。

ここには、元のデータの一部と私が見る必要がある結果の表があります。

Original Data  Result 
*6.5033E+14  (650)329-670061133 
*5.07127E+12  (507)127-2004904 
*4.0809E+11  (408)089-787487 
*9258254882  (925)825-4882 
*6547621    (654)762-1 
*310921278  (310)921-278 
*415 6995743  (415)699-5743 
*209-986-334  (209)986-334 
*661-331-2792  (661)331-2792 
*(831)383-8650 (1103)  (313)838-6501103 
*(415)488-9437 (517)  (415)488-9437517 
*(831)383-9452 (32)  (831)383-945232 
*(408)927-9482  (408)927-9482 
*(000)408-7089  (000)408-7089 
*b  
*Oakland   

マクロを作成して、さまざまな数式のヘルパーセルを使用する必要はありませんか?また、私は数のない細胞を持っているので、これらの細胞も無視する条件が必要です。

マイケル

+0

** ** 6.5033E + 14から**(650)329から670061133 **あなたが得る方法を説明してください? –

+0

私はこの方法でセルをフォーマットするために連結機能を使用します。マクロを作成する方法を見つけようとしているので、ヘルパー列を使用する必要はありません。私は現在、かっことハイフンを取り除くネストされた代用関数を持っています。ご覧のように、電話番号に内線番号が付いている場合もあります(これは間違いです)。 – Bearcub

答えて

1

使用このUDFありがとうございます。

Function TelFormat(s As String) 
    Dim sRp As String, n As Integer 
    s = Replace(s, "(", "") 
    s = Replace(s, ")", "") 
    s = Replace(s, "-", "") 
    s = Replace(s, " ", "") 
    n = Len(s) - 6 
    sRp = WorksheetFunction.Rept("#", n) 
    TelFormat = Format(s, "(000)-###-" & sRp) 
End Function 

enter image description here

関連する問題