Mat*_*ell 5 excel vba excel-vba
我已经编写了一些宏来将一堆数据格式化为相同的可接受格式,我们从中获取的程序拒绝将数据拉到我们想要的范围,但理论上在Excel中更改并不难.
设置运行的方式是为修改器设置单独的宏,然后是"全部运行"宏,只调用它们.
目前我有:
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
Run Code Online (Sandbox Code Playgroud)
但是当我运行它时,它会从整个工作表中删除Ms并且一列需要Ms仍然在单元格中(这是W列)
有效的数据示例如下:
Ms Helen Smith
Ms Brenda Roberts
Ms Kirsty Jones
Run Code Online (Sandbox Code Playgroud)
但是还有许多其他标题被使用,所以我想在宏必须选择的列上运行查找和替换.
宏工程找到我想要它的列...我只需要将它限制在该列!
小智 11
您需要正确限定Replace()
方法的范围
Sub ReplaceTitleMs()
Columns("V").Replace What:="Ms ", _
Replacement:="", _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False, _
SearchFormat:=False, _
ReplaceFormat:=False
End Sub
Run Code Online (Sandbox Code Playgroud)
根据您的数据(这是正常capitilised),以避免错误的比赛,你应该设置MatchCase
为True,以避免扑杀的喜好
Mrs Nancy Adams
来Mrs Nancy Ada
Columns("V").Replace "Ms ", vbNullString, xlPart, xlByRows, True
Run Code Online (Sandbox Code Playgroud)
要完全防弹,你要么
AutoFilter
的检测和清除Find
和构建一系列匹配项FindNext
,然后仅删除匹配正确的前三个字符