对“A”列中两个搜索值之间的“B”列进行求和,然后在单独的代码段中循环数百行,我将对求和列的组进行求和
' find strings and sum
Sub ()
' strings
Dim string1 As String ' first search value
Dim string2 As String ' second search value
Dim string3 As String ' third search value
Dim string4 As String ' fourth search value
' string values
string1 = "abcde*"
string2 = "tommy"
' string ranges
Set string1 = Range("A")
Set string2 = Range("A")
' find strings
If string1.Find () 'working on this
If Then
'working on this
End Sub
这应该可以帮助您开始:
Sub Tester()
Dim c As Range, summing As Boolean, i As Long, sum As Long 'or double
Dim ws As Worksheet, v, v2
Set ws = ActiveSheet 'or some specific sheet
'loop over ColA
For Each c In ws.Range("A1:A" & ws.Cells(Rows.Count, 1).End(xlUp).Row).Cells
v = LCase(c.Value) 'case-insensitive
If v Like "abcde*" Then 'start summing?
summing = True
sum = 0
ElseIf v = "tommy" Then 'finish summing?
If summing Then
c.Offset(-1, 1).Value = sum
summing = False
End If
ElseIf Len(v) = 0 Then 'increment sum if summing
If summing Then
v2 = c.Offset(0, 1).Value
If IsNumeric(v2) Then sum = sum + v2
End If
End If
Next c
End Sub
这假设是“幸福之路”,但您可能想要添加对(例如)“abcde*”的检查,后跟另一个“abcde*”,中间没有“Tommy”。在这些情况下会发生什么取决于你。