Excel:查找和替换宏 - 仅一列

时间:2014-08-27 14:43:56

标签: excel vba excel-vba

我已经编写了一些宏来将数据加载到相同的格式,我们从中获取的程序拒绝将数据拉到我们想要的范围,但从理论上讲,在Excel中进行更改并不困难。 / p>

设置运行的方式是为修改器设置单独的宏,然后设置一个“全部运行”宏,只调用它们。

目前我有:

Sub ReplaceTitleMs()
'
' Strips Mrs from Headteacher Name
'
'
'
 Columns("V").Select
 Cells.Replace What:="Ms ", Replacement:="", LookAt:=xlPart, SearchOrder _
    :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
End Sub

但是当我运行它时,它会从整个工作表中删除Ms并且一列需要Ms仍然在单元格中(这是W列)

数据的一个例子是:

Ms Helen Smith
Ms Brenda Roberts
Ms Kirsty Jones

但是还有许多其他标题被使用,所以我想在宏必须选择的列上运行查找和替换。

宏工作在我想要的列上查找...我只需要将其限制为该列!

3 个答案:

答案 0 :(得分:11)

您需要正确限定Replace()方法的范围

Sub ReplaceTitleMs()
    Columns("V").Replace    What:="Ms ", _
                            Replacement:="", _
                            LookAt:=xlPart, _
                            SearchOrder:=xlByRows, _
                            MatchCase:=False, _
                            SearchFormat:=False, _
                            ReplaceFormat:=False
End Sub

答案 1 :(得分:6)

根据您的数据(已正确上限),为避免错误匹配,您应将MatchCase设置为True以避免剔除 Mrs Nancy AdamsMrs Nancy Ada

Columns("V").Replace "Ms ", vbNullString, xlPart, xlByRows, True

要完全防弹,你要么

  1. 使用AutoFilter进行检测和删除
  2. 使用FindFindNext构建一系列匹配项,然后仅删除匹配正确的前三个字符

答案 2 :(得分:0)

在选定单元格中搜索和替换

  1. 按下“ ALT + F11”键快捷方式(即按住ALT键并同时按下最后一个版本的F11键)以打开 Microsoft Visual Basic应用程序窗口。

  2. 单击“ Insert > Module”(即从“ Insert”菜单中单击“ Module”),然后将以下代码粘贴到“模块窗口”中。

    < / li>
Sub ReplaceInSelection()
    Dim rng As Range
    Dim workRng As Range
    Dim find$
    Dim replace$
On Error Resume Next
    xTitleId = "KutoolsforExcel"
    Set workRng = Application.Selection
    Set workRng = Application.InputBox("Range", "Select Range", workRng.Address, Type:=8)
    find = Application.InputBox("Find:", "Select what to find")
    replace = Application.InputBox("Replace with:", "Select replacement")
    For Each rng In workRng
        If rng.Value = find Then
            rng.Value = replace
        End If
    Next
End Sub
  1. 现在关闭 Microsoft Visual Basic for Applications 窗口
  2. 并选择要转换为可单击的超链接的url文本范围。
  3. 然后按“ ALT + F8”键(或在旧版excel中仅按F5),以运行代码,并在选择“ ReplaceInSelection”时单击运行。
  4. 然后将打开一个弹出对话框,供您更改先前选择的范围,然后单击OK
  5. 然后将打开另一个弹出对话框,以指定您要find
  6. 然后,最后会打开一个弹出对话框,供您指定要replace发生的任何事情

全部完成!在选定的单元格中搜索了您为find指定的内容,并再次更改为您为replace with指定的内容。