使用VBA查找特定单词并将其旁边的值复制到另一张工作表中

时间:2019-07-08 19:01:20

标签: excel vba

我是VBA的新手,正在尝试创建宏。我想在EVE_Workbook(源)的B列中查找“现金和现金等价物”一词,然后将其右侧的7个值(单元格)复制到Macro_Results(目标)的D列中。我需要一个宏的原因是,我将不得不在多个电子表格中为多个变量复制该宏,并且所有单元格都不匹配。 我一直在网上寻找信息,但还没有发现任何实质性信息。我在正确的轨道上吗? Range.Offset也使我绊倒了,所以任何关于我做错事情的建议都会很棒。在此先感谢您的帮助。这是我到目前为止的内容:

Dim LastRow As Long
With Sheets("EVE_Workbook")
    LastRow = .UsedRange.Rows.Count

With .Range("B:B")
    Criteria1 = "Cash and Cash Equivalents"
Range.Offset(0, 1).Offset(0, 7).Copy
Sheets("Macro_Results").Cell("B2").PasteSpecial Paste:=xlPasteValues, Transpose:=True

End With
.AutoFilterMode = False
End With

结束子

1 个答案:

答案 0 :(得分:0)

这是一个很弱的问题,但这是一种开始学习的简单方法。它遍历您的范围,查看每个单元格的值,然后在D列中添加内容。如果您指定问题或自行尝试一些代码,则可能会获得更多帮助。

Sub tryHarder()

    Dim aCell As Range, WS As Worksheet

    Set WS = ActiveSheet '

    With WS

    For Each aCell In Intersect(.Range("B:B"), .UsedRange).Cells
        'this creates a loop of used cells in column b to check.

        If InStr(1, aCell.Value, "Cash and Cash Equivalants", vbTextCompare) > 0 Then
            'this inserts a value of boom 2 columns to the right of the found cell
            aCell.Offset(, 2).Value = "Boom"

        End If

    Next aCell

End With
End Sub

如果您想使用FIND Method,它也可以使用,但是当您再次查找时,它会变得有些复杂。您可以自己查找。上面的方法比较慢并且效率不高,因为它过于频繁地写入模板,但是希望您可以理解。