上班中, 突然接到电话, 屋里的上司大人发来个excel, 说要替换里面x-x-xxx列的内容为x栋x单元xxx. 大致表格如下, 原表格我就不发了
身为程序猿的我, 肯定第一就想到了 正则! 打开excel-开始-查找和替换, 我擦, 只能完全匹配和替换 比如一次只能替换1-1- -> 为1栋1单元 1-2- ->为1栋2单元..
虽然说慢了点, 终究是解决了问题!
为了解决问题而解决问题, 这可不是咱的风格, 因为这一个简单的需求实现的太不清爽了, 各种百度也没发现能直接查找和替换的方案, 😅.....简单的方法没找到, 却找到了个vb脚本写法, 记录下, 方便下次使用.
步骤一: 打开excel
步骤二: ALT+F11 打开VB窗口, 写入脚本, 执行
脚本内容:
java
Private Sub RegExp_Replace()
Dim RegExp As Object
Dim SearchRange As Range, Cell As Range
Set RegExp = CreateObject("vbscript.regexp")
RegExp.Pattern = "(\d+)-(\d+)-(\d+)"
Set SearchRange = ActiveSheet.Range("A1:A99")
For Each Cell In SearchRange
Set Matches = RegExp.Execute(Cell.Value)
If Matches.Count >= 1 Then
Set Match = Matches(0)
Cell.Value = RegExp.Replace(Cell.Value, "$1栋$2单元$3")
End If
Next
End Sub
虽然实现了, 但还是不太爽!