【问题标题】:subracting specific word from a variable file name从变量文件名中减去特定单词
【发布时间】:2016-04-05 11:52:27
【问题描述】:

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

    Dim hops as String
    Dim Dateiname as String

 Dateiname = Dateiname & hops & ".xlsm"

我该怎么做?

【问题讨论】:

    标签: vba file excel filenames


    【解决方案1】:

    有几种方法可以做到这一点。最简单的就是使用

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

    【讨论】:

    • 很好的教程示例。
    【解决方案2】:

    只是玩一下,下面一行语句

    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)
    

    如果名称中没有任何点,它们都将不起作用...

    【讨论】:

      猜你喜欢
      • 2023-04-05
      • 1970-01-01
      • 1970-01-01
      • 2020-01-10
      • 2013-07-01
      • 1970-01-01
      • 2022-08-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多