2016-03-29 15 views
1

Erstplakat hier ... Ich muss Bindestriche zu Zahlen hinzufügen, wenn sie ein oder mehrere Kriterien erfüllen. Basierend auf den erfüllten Kriterien werden die Bindestriche zu verschiedenen Orten hinzugefügt.Zeichen basierend auf Kriterien einfügen

Die Zahlen sind in Spalte A, die Werte, gegen die sie geprüft werden, sind in Spalte B. Ich muss den Wert in B überprüfen und dann A entsprechend aktualisieren. Endergebnis wenn B = SOC SEC wäre 123-45-6789 oder wenn B = TAXID wäre es 12-3456789.

Ich habe die unten, aber ich weiß, dass ich mehrere Komponenten vermisse. Ich kann nirgendwo die richtige Antwort finden.

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 

Antwort

1

Hier gehen Sie. So stellen Sie sicher, dass Sie die ganze Bandbreite der Zahlen wählen Sie in Spalte 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 (Left (TaxID konvertierte müssen, 3) & "-" & Mid (TaxID, 4,2) & "-" & Right (TaxID, 4)) 'ist nicht notwendig -' .Value 'nimmt einen' Variant' Parameter, also wird er in einen 'String' umgewandelt, dann wird * zurück * in eine' Variante' umgewandelt. 'Left (TaxID, 3) &" - ​​"& Mid (TaxID, 4,2) &" - ​​"& Right (TaxID, 4)' vermeidet 2 unnötige Umwandlungen. – Comintern

+0

Das ist richtig. Ich habe nicht einmal über Casting nachgedacht. Wird jetzt bearbeiten –

+0

OP-Fehler, nicht deins. ;-) – Comintern

Verwandte Themen