作者:利威尔的黑猫 | 来源:互联网 | 2023-08-27 13:15
我有一个代码,它遍历目标文件夹和该文件夹中的每个文件。
我有2个问题
1)我如何修改此代码并将其添加到我的主代码中,这样它就可以工作而不会因未声明变量而产生编译错误
For Each cell In Range("B1",Cells(Rows.count,"B").End(xlUp))
With cell
CodeExists = InStr(1,.Value,"testflow")
'Check that "Code:" exists
If CodeExists > 0 Then
.Value = Mid(.Value,CodeExists + 18,3)
End If
End With
Next
2)如果问题1无法完成,
wks.Cells(BlankRow,6).Replace What:="hometmastresh",Replacement:="",LookAt:=xlPart,_
SearchOrder:=xlByRows,MatchCase:=False,SearchFormat:=False,_
ReplaceFormat:=False
wks.Cells(BlankRow,6).Value = WorksheetFunction.Transpose(Split(wks.Cells(BlankRow,6),"_"))
我想知道如何修改这两个代码,以便可以拆分原始字符串:"hometmastresh_enciivedexterXXtresh_tepootsXXXXXXXXXXXXXXtepootFile"
,该字符串当前在E行中,“ X”是未知数字,并且事实将有所不同在每个文件中。
我想将原始字符串分别分为F行的“ XX”和G行的“ XXXXXXXXXXXXXX”
使用向左/向右获取字符串的结尾,并将它们与空格连接
Dim v As String
'...
'...
If CodeExists > 0 Then
v = Mid(.Value,CodeExists + 18,3)
.Value = Left(v,8) & " " & Right(v,6)
End If
,
我仍然收到“ 01tresh_tepoots20191204756890tepootFile”
因此,使用.Find
获得文本后,就可以使用Split
。例如
Dim s As String
s = Split("01tresh_tepoots20191204756890tepootFile","tepoot")(1)
s = Mid(s,2,8) & " " & Right(s,6)
Debug.Print s
修改
您的代码
If Not aCell Is Nothing Then
aCell.Formula = Replace(aCell.Formula,"")
s = Split(aCell.Value,"tepoots")(1)
End If
应如下所示。这将放置“ 20191204 756890”或单元格中的任何数字。
If Not aCell Is Nothing Then
s = Split(aCell.Value,"tepoots")(1)
s = Mid(s,6)
aCell.Value = s
End If