2016-04-05 7 views
1

Dies könnte für viele von Ihnen einfach sein, aber ich bin neu in VBA.Ich habe eine Excel-Datei mit Variablennamen, die "Dateiname" ist und ich möchte diesen "Dateiname" updaten Variable "Hopfen" hinzufügen. Mein Problem ist Dateiname hat bereits ".xlsm" drin und ich will ".xlsm" Extension nach dem Dateiname gegangen sein, also kann ich "hops" Variable zu "Dateiname" hinzufügen und sie mit ".xlsm" Extension beenden.Subtrahieren eines bestimmten Wortes aus einem variablen Dateinamen

Dim hops as String 
    Dim Dateiname as String 

Dateiname = Dateiname & hops & ".xlsm" 

Wie kann ich das tun?

Antwort

3

Es gibt mehrere Möglichkeiten, dies zu tun. Am einfachsten ist es

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

Ein Nachteil dieser früheren Lösung zu verwenden, wird es scheitern würde, wenn die Erweiterung ist etwas anderes als .xlsm. Ein robusteres Ansatz ist

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

Schließlich ist die File System Object (die von VBA eingesetzt werden können) enthält verschiedene Verfahren zum Auseinandernehmen und Wegen in unterschiedlicher Weise Zusammenbauen. Ich neige dazu, niedrigere technische Ansätze wie die oben genannten zu verwenden, aber für einige Zwecke benötigen Sie möglicherweise anspruchsvollere Werkzeuge.

+0

Gutes Tutorial-Beispiel. –

+0

Tolles Beispiel John Coleman –

0

nur ein wenig mit der folgenden einer Reihe Anweisung

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

funktionieren würde für jede Dateierweiterung und für Namen spielen Punkten andere dann die Verlängerung eines

und deren mehr „Sprechen“ enthalten Version ist

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

sie beide nicht funktionieren, wenn der Name nicht Punkt in sich hat ...

Verwandte Themen