从变量文件名

时间:2016-04-05 11:52:28

标签: excel vba file excel-vba filenames

对于你们许多人来说这可能很容易,但我是VBA的新手。我有一个名为“Dateiname”的变量名称的Excel文件,我想通过添加变量“hops”来更新这个“Dateiname”。我的问题是Dateiname里面已经有“.xlsm”了,我希望“.xlsm”扩展在Dateiname之后消失,所以我可以将“hops”变量添加到“Dateiname”并以“.xlsm”扩展名结束。

    Dim hops as String
    Dim Dateiname as String

 Dateiname = Dateiname & hops & ".xlsm"

我该怎么做?

2 个答案:

答案 0 :(得分: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使用)包含各种方法,用于以不同方式拆分和重新组装路径。我倾向于使用如上所述的低技术方法,但出于某些目的,您可能需要更复杂的工具。

答案 1 :(得分: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)
如果名称中没有任何点,它们都不会起作用......