2012-06-26 4 views
2

J'extraire une colonne de données d'une plage de noms de fichiers. Tous mes noms de fichiers sont des chaînes sous la forme:Remplacer la chaîne deux parties différentes

Temporary PSD Report 'Month' 2011.xls

J'utilise Replace pour extraire le mois de chaque, au moment où je le fais en deux étapes qui fonctionne, mais il semble un peu maladroit. Y at-il un moyen d'utiliser une sorte de AND pour plusieurs remplacements dans la même chaîne?

Dim strfilename As String 
    Dim mnth As String 
    Dim mnthshrt As String 

    mnth = Replace(strfilename, "Temporary PSD Report ", "") 
    mnthshrt = Replace(mnth, " 2011.xls", "") 

J'ai essayé d'utiliser & et AND pour référencer les deux parties à enlever, mais non plus n'a pas d'effet sur la chaîne d'origine ou produit une erreur.

Répondre

3

Vous pouvez également diviser la chaîne à chaque caractère d'espace et prendre le 4ème mot (index commence à 0):

s = "Temporary PSD Report 'Month' 2011.xls" 
mth = Split(s, " ")(3) 
+0

Très propre, merci. Par intérêt est-il possible de le faire avec une sorte de remplacement multiple? –

+0

@AlistairWeir Pour autant que je sache, non - mais quelqu'un pourrait le savoir mieux (par exemple en utilisant une sorte de regex). – assylias

+0

+1 Oui même j'aurais été parti avec split. Mais j'aurais utilisé '' 'comme délimiteur et je l'ai divisé deux fois par exemple' Debug.Print Split (Split (s, "'") (1), "'") (0) ' –

Questions connexes