APP下载

多方解决英文品牌提取的难题

2014-04-29王临

电脑迷 2014年10期
关键词:组合键单元格工作量

王临

表姐前来求助,Excel工作表大都是类似于“正品现货Emporio Armani 阿玛尼男士修身长袖打底T恤111023 3A515-tmall.hk天猫国际”的商品名称(如图1),现在希望将两边中文字符之间的英文品牌名称“Emporio Armani”提取出来,由于这些商品名称几乎不具备统一的规律,因此无法采取分列的方法,如果纯粹采取手工操作的方法,工作量相当之大,而且容易出错。有没有简单一些的方法呢?

初步解决方案:由于使用的是Excel 2013,因此首先考虑的是快速填充功能,在B2单元格手工输入“Emporio Armani”,选中B2:B184单元格区域,切换到“数据”选项卡,单击“数据工具”功能组的“快速填充”按钮,可以获得如图2所示的结果。遗憾的是虽然已经省去不少工作量,但仍然需要进行相应的手工修改,可以说这种方法并不完美。

VBA代码完美解决:根据表姐的需求,考虑VBA代码,经过反复尝试、修改,建议她使用如下代码:

Public Sub abc()

Dim ar, i

ar = Range([a2], [a65536].End(3))

With CreateObject("vbscript.regexp")

.Global = True

For i = 1 To UBound(ar)

.Pattern = "^[\u4e00-\u9fa5]{0,}([^\u4e00-\u9fa5]+)[\u4e00-\u9fa5]+.+$"

ar(i, 1) = Trim(.Replace(ar(i, 1), "$1"))

.Pattern = " \D{1,3}$| \d+$"

ar(i, 1) = .Replace(ar(i, 1), "")

Next

End With

[b2].Resize(UBound(ar)) = ar

[b:b].Replace ";*", "", 2

End Sub

按下“Alt+F11”组合键,打开Microsoft Visual Basic编辑器窗口,选择“插入/模块”,在右侧窗格插入一个空白模块,输入或粘贴代码(也可以从http://pan.baidu.com/s/1kTLpG7X下载代码文件),检查无误之后,选择“文件/关闭并返回到Microsoft Excel”命令,返回Excel主界面,按下“Alt+F8”组合键,打开“宏”对话框,运行宏即可。

猜你喜欢

组合键单元格工作量
应用地表覆盖数据估算LiDAR内业工作量的方法研究
在同一程序的不同窗口间快速切换
玩转方格
玩转方格
浅谈Excel中常见统计个数函数的用法
一个兼顾教学科研的高校教师绩效考核模型及其应用
思科发布云计算市场发展报告
网上互动教学工作量管理的困境及对策
巧用Windows键,让操作更具活力
简单便捷Win8系统metro应用切换技巧