对于你们许多人来说这可能很容易,但我是VBA的新手。我有一个名为“Dateiname”的变量名称的Excel文件,我想通过添加变量“hops”来更新这个“Dateiname”。我的问题是Dateiname里面已经有“.xlsm”了,我希望“.xlsm”扩展在Dateiname之后消失,所以我可以将“hops”变量添加到“Dateiname”并以“.xlsm”扩展名结束。
Dim hops as String
Dim Dateiname as String
Dateiname = Dateiname & hops & ".xlsm"
我该怎么做?
答案 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)
如果名称中没有任何点,它们都不会起作用......