我想找到单元格 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
如何测试/使用它。
创建一个工作簿或打开一些现有的。
打开 VBA 编辑器 (Alt-F11)。创建新模块 (不是类模块!)。将宏代码复制到其中。
确保
Sheet1
此工作簿中存在具有该名称的工作表,如果不存在则重命名某个工作表或以此名称创建新的工作表,或者编辑宏代码并在分配行中替换工作表名称。在列中
A
输入B
要替换的值对。在列中С
输入/插入必须执行替换的数据。执行宏 (F5) 或跟踪宏 (F8)。确保宏按需要工作。
对实际需要执行此任务的工作簿执行相同操作。编辑参数(工作表名称、源范围、目标范围)。
享受。