我需要一些帮助来修复我已写过的代码。
Perc1 = ThisWorkbook.Path
Slash1 = InStrRev(Perc1, "\")
PercF = Left(Perc1, Slash1 - 1)
Slash2 = InStrRev(PercF, "\")
PercFinale = Left(PercF, Slash2) & "04-OFFERTE_CONTRATTO" & "\"
值是:
: Perc1 : "E:\DENNIS\01_Progetti\1_TRATTATIVE\IT.18.9462_O. Aeroporto (ROMA)\03-CALCOLO\02-XLS\Edificio E1" : Variant/String
: Slash1 : 102 : Variant/Long
: PercF : "E:\DENNIS\01_Progetti\1_TRATTATIVE\IT.18.9462_O. Aeroporto (ROMA)\03-CALCOLO\02-XLS" : Variant/String
: Slash2 : 95 : Variant/Long
: PercFinale : "E:\DENNIS\01_Progetti\1_TRATTATIVE\IT.18.9462_O. Aeroporto (ROMA)\03-CALCOLO\04-OFFERTE_CONTRATTO\" : String
这样会以错误结束,因为03-CALCOLO和04-OFFERTE_CONTRATTO位于同一文件夹中。
我希望Percf总是在" ... \ 03-CALCOLO"之后结束。即使我在02-XLS中有子文件夹(如本例所示)。
请你给我一个建议吗?
非常感谢!
丹尼斯
答案 0 :(得分:1)
您可以定义一个函数,例如:
Function GetRootPath(ByVal strPth As String, ByVal strTkn As String) As String
Dim rtn As String, itm
For Each itm In Split(strPth, "\")
If UCase(itm) = UCase(strTkn) Then Exit For Else rtn = rtn & itm & "\"
Next itm
GetRootPath = rtn
End Function
然后使用以下方法构建路径:
PercFinale = GetRootPath(ThisWorkbook.Path, "03-CALCOLO") & "04-OFFERTE_CONTRATTO\"