excel vba 这段代码详细解释一下

Sub test2()
Dim i!, a1$, a2$, r As Range
Columns(5).ClearContents
i = 4
Set r = Range("A:A").Find(1)
a1 = r.Address
Do Until a1 = a2
If r.Offset(, 1) = 10 Then
Cells(i, 5) = r.Offset(, 2)
i = i + 1
End If
Set r = Range("A:A").FindNext(r)
a2 = r.Address
Loop
End Sub
来个高手解释下这段代码 一句一句的解释 谢了

Sub test2()
 Dim i!, a1$, a2$, r As Range
 Columns(5).ClearContents
 '第5列清空
 i = 4
 '第4行开始输出
 Set r = Range("A:A").Find(1)
 If r Is Nothing Then Exit Sub
 '找数据,找不到退出程序
 a1 = r.Address
 '第一个找到的地址
 Do Until a1 = a2
 '一直找,直到又找到第一个
  If r.Offset(, 1) = 10 Then
  '格子的右边是10
   Cells(i, 5) = r.Offset(, 2)
   '在第5列输出
   i = i + 1
   '输出增加一行
  End If
  Set r = Range("A:A").FindNext(r)
  '找下一个
  a2 = r.Address
 Loop
End Sub

增加了一行代码。防止没有1的情况出错。

追问

其实我只是想计算一下黄色里面为1并且红色里面为10 的数据 我想在把黄色和红色的数据一起显示出来请问该怎么写

这段代码只显示出了

我还想把黄色跟红色的也显示出来

追答

建议你用辅助列D4=A4 & "|" & B4然后在D4筛选。

建议你用辅助列D4=A4 & "|" & B4然后在D4筛选。

温馨提示:答案为网友推荐,仅供参考
相似回答