【问题标题】:VBA split string into substrings from file directoryVBA将字符串从文件目录拆分为子字符串
【发布时间】:2017-08-31 08:58:11
【问题描述】:

我已经搜索了很多这个主题,但没有找到我的确切问题。此外,我似乎不知道如何调整代码示例以供我使用。

我正在尝试将“文件目录字符串”从右到左拆分为子字符串。

"C:\Users\Me\CustomerName\ProductName\2017\"

然后从右到左拆分为

year
productname
customername

我尝试使用 Split() 让它工作,总是在错误的地方拆分它。

【问题讨论】:

  • 用您迄今为止尝试过的代码更新您的问题,以及不想要的行为/输出的示例(“...在错误的地方拆分。”)另外:你确定== 部分?

标签: string ms-access vba


【解决方案1】:

你提到你已经尝试过Split,所以这是一个好的开始:

Option Explicit

Public Sub TestMe()

    Dim strFolderString As String
    Dim arrFolderString As Variant

    strFolderString = "C:\Users\Me\CustomerName\ProductName\2017\"
    arrFolderString = Split(strFolderString, "\")

    Debug.Print arrFolderString(UBound(arrFolderString) - 1)
    Debug.Print arrFolderString(UBound(arrFolderString) - 2)
    Debug.Print arrFolderString(UBound(arrFolderString) - 3)

End Sub

这个想法是使用UBound 作为从右到左。我不是从0开始的,因为你的字符串以\结尾,所以第0位是空的。

【讨论】:

  • 您好,谢谢。您的 Debug.Print arrFolderString(UBound(arrFolderString) - 1) Debug.Print arrFolderString(UBound(arrFolderString) - 2) Debug.Print arrFolderString(UBound(arrFolderString) - 3) 输出了错误的子字符串,但它们都向左移动了太远。我已将其更改为Debug.Print arrFolderString(UBound(arrFolderString) - 0) Debug.Print arrFolderString(UBound(arrFolderString) - 1) Debug.Print arrFolderString(UBound(arrFolderString) - 2),现在它可以完全按照需要工作。再次感谢!编辑:抱歉格式化,我是新手
  • @DMS - 您的字符串以 `\` 结尾,这就是我以这种方式使用它的原因。试试上面的代码。
  • 啊,现在我明白了。显然我的真实代码的字符串最后没有 \ 。现在工作完美无缺,感谢您的帮助:)
猜你喜欢
  • 1970-01-01
  • 2011-11-25
  • 2017-06-27
  • 2015-12-28
  • 2019-05-22
  • 2015-09-01
  • 1970-01-01
  • 2014-09-26
相关资源
最近更新 更多