首页 > 解决方案 > VBA:检查一个单元格是否包含某个值以及如何将该值复制/粘贴到另一个单元格

问题描述

我有 2 列:W 列和 X 列。在 W 列中,从范围 W2 到 W40,我想检查该单元格是否包含像“FedEx/DHL/TNT/UPS”这样的值,以及该单元格是否具有该值,然后该值应粘贴在 X 列上。该值可以不区分大小写。

我希望 X 列上的单元格应该具有 W 列中的值。

我想看到的是,如果单元格包含值“FedEx/DHL/TNT/UPS”,那么它应该在下一列中提及该值。可以根据第一行或第二行检查值吗?例如,这是我在单元格 A2 中的值:FedEx Shipment 49XXX​​XXXXXXX 我想要一个 VBA,说明如果该单元格上提到了 FedEx,那么在单元格 B2 上,它应该显示 FedEx。有没有办法在 VBA 中做到这一点?

标签: excelvba

解决方案


如上所述,使用公式可能是可行的方法,但这里有两个选项。

在一个公式中。这里的 false 选项为空。 =IF(W2="FedEx/DHL/TNT/UPS","FedEx/DHL/TNT/UPS","")

在 VBA 中。请注意,没有复制/粘贴。使单元格相等更有效。

Option Compare Text

Sub FindValuePaste()

    Dim FndRng As Range
    Dim cll As Range

    Set FndRng = Range("W2:W40")

    For Each cll In FndRng
        If cll.Value Like "*Fedex*" Or cll.Value Like "*DHL*" Or cll.Value Like "*UPS*" Or cll.Value Like "*TNT*" Then
            cll.Offset(0, 1) = cll.Value
        End If
    Next cll

End Sub

推荐阅读