【发布时间】:2020-08-31 18:42:25
【问题描述】:
我正在尝试:
- 根据字符串“Foot Strike”查找名为 LeftTD 的变量(这部分代码有效,感谢上一个问题的帮助!)
- 在列表中找到下一个 LeftTD 并将其命名为 LeftTDx
- 读取/消息框 LeftTD 和 LeftTDx 值
- 再次执行此操作,直到 H 列为空
输入数据如下所示: Excel Data
所以我希望第一个消息框告诉我,“步骤从第 9 行开始,在第 29 行结束”。我想告诉我的第二个消息框,“步骤从第 29 行开始,在第 34 行结束”。
代码按原样运行,因为它只执行第 1 步和第 4 步(见上文),并且我将其他所有内容都注释掉了:
Private Sub CommandButton1_Click()
Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Sheet1")
Dim LeftStrike As Range, FrameLTD As Range, LeftStrike2 As Range
Dim lrL As Long
lrL = ws.Range("H" & ws.Rows.Count).End(xlUp).Row
'COMMENT: set LeftTD= to something?
Set LeftStrike = ws.Range("H2:H" & lrL) 'COMMENT: .Find(LeftTD)
For Each FrameLTD In LeftStrike
If InStr(FrameLTD, "Foot Strike") Then
LeftTD = FrameLTD.Offset(0, 1)
'COMMENT: LeftTDx = LeftTD.FindNext or is it too easy to ask VBA for : LeftTDx = LeftTD +1
'COMMENT:StepEnd = LeftTDx.value
MsgBox "Step starts in row " & LeftTD & " and ends before row " 'COMMENT:& StepEnd
End If
Next FrameLTD
End Sub
所以我想我的问题是,如何在我已经建立的查找字符串的 If Then 语句中设置 Find 和 Find Next 代码?
【问题讨论】:
标签: vba if-statement find next