【发布时间】:2017-12-12 11:05:10
【问题描述】:
我正在为 Excel 做一个 VBA 宏,我需要获取与特定字符串匹配的文件路径部分。
我的意思是,我有一个名为 FileInfo 的 Variant,其中包含我当时正在使用的工作簿的路径(在 For 中),例如,Variant 可能如下所示:
C:\Users\myUser\Desktop\SVN-Folder\trunk\G\INC20825\Estimación Temporal_v01r00.xlsx
我想做一个函数,它只返回与"INC*"匹配的路径部分,如果路径不匹配,则返回null。
所以这种情况下的函数可能会返回:INC20825
我试过了,但没有用
'This function returns the INC folder where is contained
Function INCFolder(FileInfo As Variant)
Dim i As Integer
If FileInfo Like "INC*" Then
i = InStr(FileInfo, "INC")
INCFolder = Mid(FileInfo, i, 8)
Else
INCFolder = Null
End If
End Function
编辑部分解决方案:
我使用以下代码获取了 INC* 的 8 个字符:
'This function returns the INC folder where is contained
Function INCFolder(FileInfo As Variant)
Dim i As Integer
i = InStr(FileInfo, "INC")
If i = 0 Then
INCFolder = Null
Else
INCFolder = Mid(FileInfo, i, 8)
End If
End Function
INC 大于或小于 8 时会出现问题
【问题讨论】:
-
路径中的
INC部分是否总是有 8 个字符?我会让它更有活力 -
是的,它可能没有 8 个字符,但我不知道如何使它更动态
-
@Pablo.x 在下面看到我的回答,它会让你更加灵活,并且可以灵活处理任意数量的字符
-
是的,刚刚意识到,效果很好,非常感谢!