Excel宏在ctrl + f框中粘贴相同的值虽然不同的单元格值

时间:2018-02-10 13:53:35

标签: vba excel-vba excel

论坛和vba的新手,但想了解更多。

有两个大数据表,想要查找一个单元格值,该单元格值等于表1中活动单元格左侧的单元格值,然后在第二个表格中找到该值。找到值时,我想将第5列中找到的单元格值返回到第2列中A列的右侧。

我创建的宏运行良好 - 如果不是它总是查找相同的值“10.136.32.10”,即此值不会随着活动单元格向下移动表1而改变。我想要的值根据从单元格向左复制的内容进行更改。有没有办法做到这一点?我使用 Ctrl + f 函数,然后粘贴从表1中复制的单元格值

拥有以下宏:

Sub Makro2()
'
' Makro2 Makro
'

'
    ActiveCell.Offset(0, -1).Range("A1").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("SKF-NOV-6-2017").Select
    Cells.Find(What:="10.136.32.10", After:=ActiveCell, LookIn:=xlFormulas, _
        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False).Activate
    Selection.End(xlToLeft).Select
    ActiveCell.Offset(0, 4).Range("A1").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("All Equipment").Select
    ActiveCell.Offset(0, 1).Range("A1").Select
    ActiveSheet.Paste
    ActiveCell.Offset(1, 0).Range("A1").Select
End Sub

1 个答案:

答案 0 :(得分:0)

以下是您可以完成工作的代码。此宏立即搜索所有行。如果您只需要搜索活动单元格,则需要删除循环。

Sub macro2()

    Dim lr As Long, r As Long, c As Long
    Dim str As String

    lr = Cells(Rows.Count, 1).End(xlUp).Row

    For r = 1 To lr

        str = Cells(r, c).Offset(0, -1)

        Sheets("SKF-NOV-6-2017").Select

        Cells.Find(What:=str, After:=ActiveCell, LookIn:=xlFormulas, _
            LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
            MatchCase:=False, SearchFormat:=False).Activate

        Selection.End(xlToLeft).Select
        ActiveCell.Offset(0, 4).Select
        Application.CutCopyMode = False
        Selection.Copy

        Sheets("All Equipment").Select

        Cells(r, c + 1).past
    Next r
End Sub