【发布时间】:2016-08-14 09:51:16
【问题描述】:
我需要从这样的表中查找与两个搜索条件相邻的值:
我写的代码是:
Dim mAin As Worksheet
Dim findc As Range
Dim findsc As Range
Dim code As Long
Dim scode As Integer
Dim i As Integer
Dim ttlrw As Long
i = 1
Set mAin = ActiveSheet
ttlrw = mAin.Columns(1).SpecialCells(xlCellTypeConstants).Count
Do
code = mAin.Cells(i, 5).Value
scode = mAin.Cells(i, 6).Value
Set findc = mAin.Columns(1).Find(code)
Set findsc = mAin.Columns(2).Find(scode)
Do
Set findc = mAin.Columns(1).FindNext(findc)
Set findsc = mAin.Columns(2).FindNext(findsc)
Loop Until findc.Row = findsc.Row
mAin.Cells(i, 7).Value = findsc.Offset(0, 1).Value
i = i + 1
Loop Until i = ttlrw + 1
找到的值应该与相似的表格相邻输出,但更混乱。
此外,宏在第 5 行之后进入无限循环。
我设法使用 INDEX、MATCH 和 &s 来解决这个问题,并将其转换为数组公式;但我也想进一步提高我对 VBA 的理解。
【问题讨论】:
-
如果您提供示例输入数据和预期输出,回答您的问题会容易得多。此外,您的代码不会检查是否找到了搜索值。
-
你应该在 Youtube 上观看这个视频系列:[Excel VBA 介绍](聪明的猫头鹰教程)。下载Smart Indenter;它会为你格式化你的代码。适当的缩进可以很容易地找到未闭合的代码块。
-
谢谢,我一定会去看看。并且处理我的缩进,当我再次查看它时,我什至无法判断它是否未关闭。