2009-04-16 4 views
0

Matin Tous,Conversion du texte en nombre

Aujourd'hui, je suis venu avec la nouvelle affectation de conversion du texte en nombre automatiquement par des codes VBA. Par exemple, '1233 doit être converti en 1233 et (1234) doit être converti en -1234 sans aucune interférence humaine. Certains conseils sont très utiles.

Cordialement, A Jabeer Ali

+0

Alors, essayez-vous de convertir le texte dans une cellule? Ou une chaîne stockée dans une variable? L'approche peut être différente dans ces cas. – BradC

Répondre

0

Misunderstood votre question, mes excuses.

Cela a fonctionné pour moi, même exceller en dehors:

Function numConv(num As String) As Double 

    If Mid(num, 1, 1) = "(" And Mid(num, (Len(num)), 1) = ")" Then 
     num = Replace(num, "(", "") 
     num = Replace(num, ")", "") 
     numConv = val(num) * -1 
    Else 
     numConv = val(num) 
    End If 

End Function 
+0

Il n'essaie pas de retourner le signe. La parenthèse (1234) est un indicateur d'un nombre négatif. – BradC

+1

Aussi pourquoi utiliser Mid (num, 1, 1) = "(" Et Mid (num, (Len (num)), 1) = ")" Cela devrait aller avec Left (num, 1) = "("Et bien (num, 1) =") " – Adarsha

2

Utilisez la fonction VALUE().

En outre, à partir here:

Sub ConvertToNumbers() 
    Cells.SpecialCells(xlCellTypeLastCell) _ 
    .Offset(1, 1).Copy 
    Selection.PasteSpecial Paste:=xlPasteValues, _ 
    Operation:=xlPasteSpecialOperationAdd 
    With Selection 
    .VerticalAlignment = xlTop 
    .WrapText = False 
    End With 
    Selection.EntireColumn.AutoFit 
End Sub