2016-03-29 10 views
1

初めての投稿... 1つの条件を満たす場合はハイフンを数値に追加する必要があります。満たされた基準に基づいて、ダッシュが異なる場所に追加されます。条件に基づいて文字を挿入してください

数値は列Aにあり、チェックされる値は列Bにあります。その値をBで確認し、それに応じてAを更新する必要があります。 B = SOC SECの場合は最終結果は123-45-6789、B = TAXIDの場合は12-3456789となります。

私は以下を持っていますが、いくつかのコンポーネントがありません。どこでも正しい答えを見つけることができないようです。

Sub AddHyphens() 
    Dim TaxIDType As String 
    Dim taxid As Long 
    Dim SOCSEC As String 
    Dim TAXIDfield As String 
     IF TaxIDType="SOC SEC" then Cstr(Left(TaxID,3)&"-"&Mid(TaxID,4,2)&"-"&Right(TaxID,4) 
    Else 
     IF TaxIDType="TAXID" then Cstr(Left(TaxID,2)&"-"&Right(TaxID,7) 

End Sub 

答えて

1

ここに行きます。 (&右 " - - " &ミッド(TAXID、4,2)& "" ちょうどあなたが列Aに変換された必要数の全範囲を

Sub AddHyphens() 
Dim myRange As Range 
Dim myCell As Range 

Set myRange = Selection 

For Each myCell In myRange 

If myCell.Offset(0, 1).Value = "SOC SEC" Then 
    myCell.Value = Left(myCell.Value, 3) & "-" & Mid(myCell.Value, 4, 2) & "-" & Right(myCell.Value, 4) 
ElseIf myCell.Offset(0, 1).Value = "TAXID" Then 
    myCell.Value = Left(myCell.Value, 2) & "-" & Right(myCell.Value, 7) 
End If 

Next myCell 

End Sub 
+0

'CSTR(左(TAXID、3)&選択するようにしてくださいTaxVal、4)) 'は必要ではありません。 - ' .Value'は 'Variant'パラメータをとりますので、' String'にキャストし、 'Variant'にキャストします。 'Left(TaxID、3)&" - "Mid(TaxID、4,2)&" - "&Right(TaxID、4)は、2つの不要なキャストを回避します。 – Comintern

+0

それは正しい。私はキャスティングを考えていませんでした。今編集します –

+0

OPの間違いではなく、あなたのものです。 ;-) – Comintern

関連する問題