我们先看下面案例:
说明
A列和C列各有自己不同的数据,但是我们可以发现红框内数据有相同的格式,并且有相同的数据。
目的
我们要在A列内查找与C列有相同数据部分的A列数据,把他复制到D列。
例如C1单元格内在A列拥有同样数据的单元格应该是A4。
我们想要的结果是下面这样的。
●首先,我们要把C列数据截取部分字符串。
参照:VBA基础入门(6)简单的字符串处理函数(1)
●然后,我们可以做一个循环来遍历A列数据
参照:VBA基础入门(15)循环语句
●使用LIKE方法查找数据。
最后,把数据复制到D列。
【代码】
根据以往我们所学的知识点,不难写出上面的代码。
但如果我们A列,C列的数据特别多,那么我们的代码的执行效率会非常非常的慢,今天的重点来了,用Find方法来进行查找。
思路上差不多,只需要把遍历换成Find方法。
【代码】
Sub test1218_2()
Dim MyStr As String
Dim TempStr As String
Dim RowC As Integer
Dim MaxrowC As Integer
Dim Myrow As Integer
RowC = 1
MaxrowC = Sheets(1).Range("C100").End(xlUp).Row
For RowC = 1 To MaxrowC
MyStr = Right(Sheets(1).Range("C" & RowC), 26)
Sheets(1).Columns("A").Select
'用Find方法获取相同内容的行数
Myrow = Selection.Find(what:=MyStr).Row
Sheets(1).Range("D" & RowC) = Sheets(1).Range("A" & Myrow)
Next RowC
MsgBox "Complete"
End Sub
【问答】
联系客服