我正在尝试对同一工作簿中2个不同工作表中的2列进行部分比较。
例如:Sheet2' Column B
包含Rs ID
(所有数字),Column A
包含Clinical Significance
,在Sheet1中有2列A
}& B
(包含字符串和数字)以及相同的标题。
如果 Sheet2 的Column B
与 Sheet1 的Column B
存在部分匹配,我会希望我的VBA代码复制该单元格在Column A
从 Sheet2 到{strong> Sheet1 的Column A
中的同一个单元格。
Sheet 1中:
Sheet 2中:
这是我的代码。它运行完美,但它似乎无法捕获任何数据,因为 sheet2 中的Column B
与Column A
不完全相同。可能是我错误地使用了lookat:=xlPart
吗?
Sub test()
Dim rng2 As Range, c2 As Range, cfind As Range
Dim x, y
With Worksheets("sheet1")
Set rng2 = .Range(.Range("B2"), .Range("B2").End(xlDown))
For Each c2 In rng2
x = c2.Value
With Worksheets("sheet2").Columns("B:B")
On Error Resume Next
Set cfind = .Cells.Find(what:=x, lookat:=xlPart, LookIn:=xlValues)
If (Not (cfind Is Nothing)) Then
y = cfind.Offset(0, -1).Value
c2.Offset(0, -1) = y
End If
End With
Next c2
End With
End Sub
答案 0 :(得分:0)
你(我相信)正在寻找第一张纸的价值,在第二张纸内,而它应该是另一种方式; - )。
试试这个,对我有用你提供的数据。我使用的方法略有不同,但总体思路保持不变。
var select = document.getElementById("animalList");
for(var i=0;i<=animals.length;i++)
{
select.options[i] = new Option(animals[i].name,animals[i].code);
}
它总是循环遍历rng2中的所有值!因此,如果在rng2中的多个单元格中找到c1的值,那么它会用最新的find覆盖上一个匹配!