2

感谢您对以下内容的帮助。

我需要在 VBA 中分离一些数据,以便可以将其设置为要在文件命名系统中使用的单独变量。

我有以下代码:

    Sub StripSlash1()
Dim strVal As String, strVal2 As String, strVal3 As String, strVal4 As String

'strVal = "jack\tom\rich\Nicolson\KingMcManaman"
'strVal = "L:\Pictures\A B C\A5 GROUP\A5 KHAKI\f"
strVal = "L:\Pictures\A B C\A5 GROUP\BPD"

    Cells(2, 5).Formula = strVal

    strVal2 = Right(strVal, InStr(strVal, "\") - 1)
    Cells(2, 6).Formula = strVal2

    strVal4 = Left(strVal, InStrRev(strVal, "\") - 1)
    Cells(2, 7).Formula = strVal4

    strVal3 = Right(strVal4, InStr(strVal4, "\") - 1)
    Cells(2, 8).Formula = strVal3


End Sub

开头的三个 strVal 是运行代码以测试代码的数据的 3 种不同选择。\ 的数量在不同的情况下可能会有所不同。

我们需要的结果是:

数据集 1 strVal2 = KingMcManaman strVal3 = Nicolson

数据集 2 strVal2 = f strVal3 = A5 卡其色

数据集 3 strVal2 = BPD strVal3 = A5 GROUP

我会很感激你的意见,因为我一直没有运气。

问候,

山姆

4

2 回答 2

7

请考虑使用Split在您的情况下执行以下操作的函数:

strVal = "L:\Pictures\A B C\A5 GROUP\BPD"
Dim arrVal As Variant
    arrVal = Split(strVal, "\")

要获得其中的一部分,strVal您必须记住 arrVal 是一个数组:

strVal2 = arrVal(UBound(arrVal))         'result: BPD
strVal3 = arrVal(UBound(arrVal)-1)       'result: A5 GROUP

等等...

于 2013-03-18T17:23:07.403 回答
1
Sub Tester()

    Dim s, arr

    s = "aaa\bbb\ccc\d\eee"
    arr = Split(s, "\")

    With ActiveSheet.Cells(2, 5)
        .Value = s
        .Offset(0, 1).Resize(1, UBound(arr) + 1).Value = arr
    End With

End Sub
于 2013-03-18T17:46:44.857 回答