gpt4 book ai didi

vba - 获取与另一个字符串匹配的部分字符串

转载 作者:行者123 更新时间:2023-12-04 21:54:19 25 4
gpt4 key购买 nike

我正在为 Excel 做一个 VBA 宏,我需要获取与特定字符串匹配的文件路径部分。

我的意思是,我有一个 Variant调用FileInfo包含我当时正在使用的工作簿的路径(在 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时会出现问题

最佳答案

您可以使用 Split分开你的\从您到 PathArr 的完整路径数组元素,然后循环 PathArr元素并查找 "INC" .

下面的代码将为您提供“ INC ”字符数的灵 active 。

代码

Option Explicit        

Sub test()

Const FullName = "C:\Users\myUser\Desktop\SVN-Folder\trunk\G\INC20825\Estimación Temporal_v01r00.xlsx"
Dim INCSection As String

INCSection = INCFolder(FullName)

End Sub
Function INCFolder(FileInfo As Variant) As String

Dim i As Long
Dim PathArr As Variant

If FileInfo Like "*INC*" Then
PathArr = Split(FileInfo, "\") ' split folders to array

For i = 0 To UBound(PathArr) ' loop through array and look for "*INC*"
If PathArr(i) Like "*INC*" Then
INCFolder = PathArr(i)
Exit Function
End If
Next i
Else
INCFolder = "Error!"
End If

End Function

关于vba - 获取与另一个字符串匹配的部分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47771069/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com