【发布时间】:2020-06-01 17:07:16
【问题描述】:
希望这是一个简单的过程。在这个 For 循环中,我希望 VBA 读取字符串“Foot Strike”的第一个范围(LeftStrike),然后分配“1”的值并将该分配的值放入偏移单元格中。然后我希望它给分配的值加 1 并再次运行 For 循环,寻找下一个“Foot Strike”字符串。这样,我可以看到“第一次”脚击是哪一排,依此类推。我真的很难理解一件事的 .value = 另一件事的 .value 以便“复制和粘贴”可以这么说。
Private Sub CommandButton2_Click()
Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Sheet1")
Dim ws2 As Worksheet: Set ws2 = ThisWorkbook.Sheets("Sheet2")
Dim LeftStrike As Range, FrameLTD As Range, StepNum As Range
Dim lrL As Long, LastFrame As Long
Dim StepCount As Long
StepCount = 1
lrL = ws.Range("H" & ws.Rows.Count).End(xlUp).Row
LastFrame = ws.Range("A" & ws.Rows.Count).End(xlUp).Row
Set LeftStrike = ws.Range("H2:H" & lrL)
Set StepNum = ws.Range("J2:J" & lrL)
For Each FrameLTD In LeftStrike
If InStr(FrameLTD, "Foot Strike") Then
' assign value of "1" to StepCount
' somehow get StepCount to = FrameLTD.Offset(0, 3).Value
' StepCount = StepCount + 1
End If
Next FrameLTD
MsgBox "Steps Numbered"
End Sub
有人能告诉我我的代码行应该在 For 循环中什么来让我的“步数”进入偏移列吗???
【问题讨论】:
-
FrameLTD.Offset(0, 3).Value = StepCount -
我编辑了原始问题以包含我拥有的整个代码。
-
如果我使用“FrameLTD.Offset(0, 3).Value = StepCount”,它不会在工作表中放入任何值。它只是说它运行并显示了消息框,但单元格中没有“StepCount”值。
标签: vba for-loop count return-value offset