Excel:查找和replacemacros – 仅一列

我已经编写了一些macros来将一些数据加载到相同的接受格式中,我们从中提取的程序拒绝将数据拉到我们想要的地方,但是从理论上讲,在Excel中改变并不难。

它设置运行的方式是为修改器分配macros,然后是一个“全部运行”macros,它们只是对它们进行调用。

目前我有:

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 

但是当我运行这个,它从整个工作表中删除女士和一列要求女士仍然在单元格(这是列W)

数据的一个例子是有效的:

 Ms Helen Smith Ms Brenda Roberts Ms Kirsty Jones 

但是还有很多其他的标题正在被使用,所以我想只在macros中select的列上运行查找和replace。

macros作品find我想要的列…我只需要限制到该列!

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

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

根据你的数据(这是适当的capitilised),为避免错误的匹配,你应该设置MatchCase为True,以避免扑杀Mrs Nancy Adams Mrs Nancy Ada喜欢南希阿达Mrs Nancy Ada

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

要完全防弹,你要么

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