使用查找和替换在 Excel 中创建宏

使用查找和替换在 Excel 中创建宏

我想找到单元格 A1 中的内容,并将其替换为单元格 B1 中的内容,然后对 A2 到 B2、A3 到 B3 等执行相同操作。我不知道如何告诉“查找”和“替换”功能来实现这一点。

我实际上正尝试在这里创建一个宏,因此我正在寻找在录制宏时使用的语法。

答案1

Public Sub MyReplace()
' Define variables '
Dim sh As Worksheet
Dim dst As Range
Dim vals() As Variant
Dim i As Integer
' Reference to a sheet '
Set sh = ThisWorkbook.Worksheets("Sheet1")
' Reference to the range where to replace (column C) '
Set dst = sh.Range(sh.Cells(1, 3), _
                   sh.Cells(sh.UsedRange.Row + sh.UsedRange.Rows.Count - 1, 3))
' Get the replacement values pairs (from columns A and B) '
vals = sh.Range(sh.Cells(1, 1), _
                sh.Cells(sh.UsedRange.Row + sh.UsedRange.Rows.Count - 1, 2)).Value
' process each replacement values pair '
For i = LBound(vals) To UBound(vals)
    ' If both values are not empty '
    If Len(Trim(vals(i, 1))) > 0 And Len(Trim(vals(i, 2))) > 0 Then
        ' then perform the replacement '
        dst.Replace What:=Trim(vals(i, 1)), Replacement:=Trim(vals(i, 2)), _
                    LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _
                    SearchFormat:=False, ReplaceFormat:=False
    End If
Next
End Sub

如何测试/使用它。

  1. 创建一个工作簿或打开一些现有的。

  2. 打开 VBA 编辑器 (Alt-F11)。创建新模块 (不是类模块!)。将宏代码复制到其中。

  3. 确保Sheet1此工作簿中存在具有该名称的工作表,如果不存在则重命名某个工作表或以此名称创建新的工作表,或者编辑宏代码并在分配行中替换工作表名称。

  4. 在列中A输入B要替换的值对。在列中С输入/插入必须执行替换的数据。

  5. 执行宏 (F5) 或跟踪宏 (F8)。确保宏按需要工作。

  6. 对实际需要执行此任务的工作簿执行相同操作。编辑参数(工作表名称、源范围、目标范围)。

享受。

相关内容