我在VBA中相对缺乏经验,但通常可以完成简单的任务。我目前遇到.Find函数的问题。我知道excel没有能力做两个.finds,但我在为第二次查找编写循环时遇到了问题。我到目前为止的代码是在这里:在VBA中编程多个.FindNext
Dim j As Integer
Dim Total As Integer
Total = Application.CountIf(Sheets("Output").Range("A:A"), "*Structure*")
Dim class As String
class = "CLASS ="
Dim str As String
str = "Structure"
With Sheets("output")
Set rng1 = .Range("A:A").Find(str, lookat:=xlPart)
row1 = rng1.Row
Set rng2 = .Range("A:A").FindNext(rng1)
row2 = rng2.Row
For j = 6 To Total + 5
If Application.WorksheetFunction.CountIf(Sheets("output").Range("A" & row1 & ":A" & row2), "*" & class & "*") > 0 Then
Set rng3 = .Range("A" & row1 & ":A" & row2).Find(class, lookat:=xlPart)
Sheets("sheet2").Cells(7, j).Value = Mid(rng3, 9, 3)
Else
Sheets("sheet2").Cells(7, j).Value = ""
End If
row1 = row2
Set rng2 = .Range("A:A").FindNext(rng2)
row2 = rng2.Row
Next j
End With
我的代码,以创建第二.Find一个范围,然后填写表格位于不同的工作搜索单词“结构”。我知道这个问题是与多重。找到,但找不到任何我可以完全理解的帮助。
什么是错误您收到?为什么在结构的两端都有星号? –
包含“结构”的单元格可在其任一侧上具有文本。我没有收到错误,但在程序找到rng3之后,它变成了新的搜索项目。所以rng2不再搜索“结构”,并且表格不能跳过没有rng3的单元格。 –