2016-04-05 4 views
1

Это может быть легко для многих из вас, но я новичок в VBA. У меня есть файл Excel с именем переменной, который является «Dateiname», и я хотел бы обновить этот «Dateiname» на добавляя переменную «хмель». Моя проблема - Dateiname уже «.xlsm» внутри нее, и я хочу, чтобы расширение «.xlsm» исчезло после Dateiname, поэтому я могу добавить переменную «hops» в «Dateiname» и завершить ее расширением «.xlsm».отключение определенного слова от имени файла переменной

Dim hops as String 
    Dim Dateiname as String 

Dateiname = Dateiname & hops & ".xlsm" 

Как я могу это сделать?

ответ

3

Существует несколько способов сделать это. Проще всего использовать

Dateiname = Replace(Dateiname , ".xlsm", hops & ".xlsm") 

Недостатком этого предыдущего решения оно не будет, если расширение есть нечто иное, чем .xlsm. Более надежный подход

Dim A as variant, i as Long 
A = Split(Dateiname,".") 
i = UBound(A)-1 
A(i) = A(i) & hops 
Dateiname = Join(A,".") 

Наконец, File System Object (который может быть использован с VBA) содержит различные методы для принятия друг от друга и пути повторной сборки по-разному. Я склонен использовать более низкотехнологичные подходы, такие как выше, но для некоторых целей вам могут потребоваться более сложные инструменты.

+0

Хороший пример учебника. –

+0

Отличный пример Джон Колман –

0

просто играть немного с, следующим утверждением одна строки

Dateiname= Mid(Dateiname, 1, InStrRev(Dateiname, ".") - 1) & hops & Mid(Dateiname, InStrRev(Dateiname, ".")) 

будет работать для каждого расширения файла и для имен, содержащих другие точки, то расширение один

и чьи более «говорящий» версия

Dim iDot as long 
iDot = InStrRev(Dateiname, ".") 
Dateiname = Mid(Dateiname, 1, iDot - 1) & hops & Mid(Dateiname, iDot) 

оба они не будут работать, если имя не имеет каких-либо точку в этом ...

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