【问题标题】:Replace String Two Different Parts替换字符串两个不同的部分
【发布时间】:2012-06-27 18:47:42
【问题描述】:

我正在从一系列文件名中提取一列数据。我所有的文件名都是以下形式的字符串:

Temporary PSD Report 'Month' 2011.xls

我正在使用Replace 从每个中提取月份,目前我分两个阶段进行操作,但似乎有点笨拙。有没有办法在同一个字符串中使用某种AND 进行多次替换?

    Dim strfilename As String
    Dim mnth As String
    Dim mnthshrt As String

    mnth = Replace(strfilename, "Temporary PSD Report ", "")
    mnthshrt = Replace(mnth, " 2011.xls", "")

我尝试使用&AND 来引用要删除的两个部分,但它对原始字符串没有影响或产生错误。

【问题讨论】:

    标签: string excel replace vba


    【解决方案1】:

    您还可以在每个空格字符处拆分字符串并取第 4 个单词(索引从 0 开始):

    s = "Temporary PSD Report 'Month' 2011.xls"
    mth = Split(s, " ")(3)
    

    【讨论】:

    • 非常干净,谢谢。出于兴趣,是否可以通过某种多重替换来做到这一点?
    • @AlistairWeir 据我所知,没有 - 但有人可能知道得更好(例如通过使用某种正则表达式)。
    • +1 是的,即使我会选择拆分。但我会使用 ' 作为分隔符并将其拆分两次,例如 Debug.Print Split(Split(s, "'")(1), "'")(0)
    • 嗯……在这种情况下,我觉得一分就够了!我没有在' 上分裂,因为我认为它是为了突出月份而不是实际出现在真实姓名中。
    • Assylias 是对的,' 仅在示例中使用,但有助于了解情况是否确实出现。
    猜你喜欢
    • 2013-08-13
    • 1970-01-01
    • 1970-01-01
    • 2017-04-06
    • 2012-07-17
    • 2021-04-16
    • 1970-01-01
    • 2021-02-09
    相关资源
    最近更新 更多