2012-06-26 4 views
2

Я извлекаю столбец данных из диапазона имен файлов. Все мои имена файлов являются строки в виде:Замените String Two Different Parts

Temporary PSD Report 'Month' 2011.xls

Я использую Replace извлечь месяц от каждого, в данный момент я делаю это в два этапа, который работает, но это кажется немного неуклюжим. Есть ли способ использовать какой-то тип AND для нескольких замещений в одной строке?

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

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

Я попытался с помощью & и AND ссылаться на обе части должны быть удалены, но он либо не оказывает никакого влияния на исходной строке или выдает ошибку.

ответ

3

Вы также можете разбить строку на каждом пространство характер и занимает 4-е слова (индекс начинается с 0):

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

Очень чистое, спасибо. Из интереса можно сделать это с помощью какой-то замены? –

+0

@AlistairWeir Насколько я знаю, нет - но кто-то может знать лучше (например, используя какое-то регулярное выражение). – assylias

+0

+1 Да, даже я бы пошел с расколом. Но я бы использовал '' 'как разделитель и разделил его дважды, например' Debug.Print Split (Split (s, "'") (1), "'") (0) ' –

Смежные вопросы