Excel宏比较两列Ax,Bx和当不同列Dx中的true打印值Cx时

时间:2013-10-03 09:57:44

标签: excel excel-vba excel-formula excel-2003 vba

我有一个包含60k行和30多列的excel报告。我想将值H1与列B:B中的所有值进行比较,当匹配时,我想将值Nx打印到不同的列BF:BF或{ {1}},无论哪个都很简单,然后转到sheet2.A:A,依此类推。

请帮帮我。谢谢。

2 个答案:

答案 0 :(得分:2)

为什么要使用宏?

[BF2] =IF($H$1=B2; N2; "")
[H2]  =BF2

答案 1 :(得分:0)

此代码将使用存储在同一工作表的单元格H1中的值检查B列中的每个单元格。当值匹配时,它将填充BF列中的相应单元格(按行)和“N”列: 只需填写工作表名称,最后设置较小的行数(至10000)

Sub CompareValues ()
Dim Wks as Worksheet: Set Wks = Sheets("YourWorkSheetName")
    ' in this worksheet the code will do the lookup and copy values
Dim Wks2 as Worksheet: Set Wks2 = Sheets("YourOtherWorkSheetName")
    ' in this sheet (2) the code will optionally copy the values
CompareValue = Wks.Range("H1").value
    Dim I as integer
    for i = 1 to 10000 ' you can set a smaller value thow
        If Wks.Range("B"&i) = CompareValue then 
        Wks.Range("BF"&i).Value = Wks.Range("N"&i)
        ' to fill the value into another sheet simply replace the Wks with Wks2
        ' Wks2.Range("BF"&i) = = Wks.Range("N"&i)
        end if
    next i
End Sub

希望这有帮助!