利用VBA代码批量填充职位升降信息

2015-04-29 00:44王志军
电脑迷 2015年2期
关键词:组合键王志军单元格

王志军

人事部的同事前来求助(如图1),E列是职位升降及留用情况的信息,现在需要对现职位和原岗位进行比较,如果发现现职位和原岗位出现不一致,那么需要在F列填充职位的升降时间,并在G列填充升降明细。除了手工操作之外,有没有简单一些的方法呢?

经过考虑,由于单元格中的职位升降及留用信息并不规范,因此无法直接使用分列功能,建议同事使用VBA代码解决这一问题:按下“Alt+F11”组合键,打开Microsoft Visual Basic for Applications编辑器窗口,依次选择“插入/模块”,在右侧窗格插入一个空白模块(如图2),在这里手工输入或粘贴如下代码:

Sub test()

Set reg = CreateObject("vbscript.regexp")

With reg

.Global = True

.Pattern = "(\d{1,2}\-\d{1,2})(由.*)"

End With

With Sheet1

For Each Rng In .Range("e2:e" & .Cells(Rows.Count, "e").End(xlUp).Row)

Set mat = reg.Execute(Rng.Value)

For Each m In mat

Rng.Offset(, 1) = m.submatches(0)

Rng.Offset(, 2) = m

Next

Next

End With

End Sub

上述代码运用了正则表达式,例如“(\d{1,2}\-\d{1,2})(由.*)”,同时以“由”为关键字进行提取。检查无误之后,选择“文件→关闭并返回到Microsoft Excel”命令,返回Excel主界面,按下“Alt+F8”组合键,打开“宏”对话框,选择并运行test宏,很快就可以得到结果(如图3)。

Ps:相关VBA代码可以关注电脑迷微信(微信号:cpcfan),回复1502VBA2获得下载链接。

猜你喜欢
组合键王志军单元格
TSCL-SQL:Two-Stage Curriculum Learning Framework for Text-to-SQL
王志军 油画作品
流水账分类统计巧实现
在同一程序的不同窗口间快速切换
玩转方格
玩转方格
浅谈Excel中常见统计个数函数的用法
巧用Windows键,让操作更具活力
简单便捷Win8系统metro应用切换技巧
Numerical Simulation on New Perforator