VBA 如何在选项显式中使用中间函数



我有一个代码,它循环遍历目标文件夹和文件夹中的每个文件。

我有 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), "_"))

我想知道如何修改这 2 个代码,以便我可以拆分我的原始字符串:"hometmastresh_enciivedexterXXtresh_tepootsXXXXXXXXXXXXXXtepootFile"当前在 E 行中,"X"是未知数字,并且每个文件中都会有所不同。 我想将原始字符串分别拆分为"XX"到F行和"

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

我仍然得到"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, 2, 8) & " " & Right(s, 6)
aCell.Value = s
End If

使用 Left/Right 获取字符串的末尾并用空格连接它们

Dim v As String
'...
'...
If CodeExists > 0 Then
v = Mid(.Value, CodeExists + 18, 3)
.Value = Left(v, 8) & " " & Right(v, 6)
End If

最新更新