首页 > 解决方案 > 如何在 cloumn2 中找到 E1 值,然后使用宏替换为 column1 值?

问题描述

我想将E1单元格中可用的值查找到column2行中,然后按column1值替换。例如

B2 值应从 ABC-1 替换为 A-1。B3 值应从 ABC-1 替换为 B-1

等等。

我是宏的新手。

我试图从互联网上放代码

Sub FindReplaceAll()

Dim fnd As Variant
Dim rplc As Variant  

fnd = "ABC"
rplc = Cells(i, 8).Value

Dim lastRow As Long
lastRow = Cells(Rows.Count, 4).End(xlUp).row

Dim i As Long

For i = 2 To lastRow
    If Not IsEmpty(Cells(i, 4)) Then
          Cells.Replace what:=fnd, Replacement:=rplc
    End If
Next

End Sub

标签: excelvba

解决方案


稍微编辑您的代码以满足您描述的需求(如果理解正确)

  • 您总是在绝对单元格中搜索值E1
  • 您将 B 列中的搜索值替换为 A 列中的完整值

我的样本数据基于您的评论:

在此处输入图像描述

Sub FindReplaceAll()

Dim fnd As String, rplc As String, i As Long

With ActiveWorkbook.Sheets("Sheet1") 'Your sheetname goes here
    fnd = .Range("E1").Value
    For i = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
        .Cells(i, 2).Replace what:=fnd, Replacement:=.Cells(i, 1).Value
    Next i
End With

End Sub

运行宏后:

在此处输入图像描述

如果您可以通过公式来做到这一点并避免使用 VBA(特别是如果您是新手),例如输入C2

=IF(LEFT(B2,(SEARCH("-",B2)-1))=$E$1,A2&RIGHT(B2,LEN(B2)-SEARCH("-",B2)+1),B2)

并且向下拖动...

在此处输入图像描述


推荐阅读