APP下载

VBA在专利数据加工中的应用

2015-11-02宋寿贵邹中华

中国科技信息 2015年10期
关键词:行数标引表单

宋寿贵 邹中华

VBA在专利数据加工中的应用

宋寿贵 邹中华

结合Excel 2007电子表格软件,举例说明了VBA语言在专利数据加工中的应用,通过循环和枚举代码,实现了子母公司名称的合并和对各类公司的快速标引,显著提高了专利数据处理的效率。

专利数据加工是专利统计分析工作的重要环节。由于需要加工的专利经常在数万条到几十万条,人工处理需要花费大量的时间,工作繁琐、重复性强、容易出错。为了提高专利数据加工的效率和准确性,本文通过几个例子,阐述如何将Visual Basic for Application(简称VBA)应用在专利数据的加工流程中,以提高工作效率。

VBA 介绍

VBA是微软Office 系列软件内嵌的编程语言,可以和Office系列软件进行良好的交互。将其应用在Excel软件中,可以使工作自动化,如自动数据匹配、数据检索、自动创建图表等。在Excel中按Alt+F11组合键,即可打开VBA代码编辑器。VBA语言采用了类似传统Basic语言的语法,易学易用。如本文用到的循环语句的语法是:

For i = 开始值 to 结束值

循环体

Next i

当循环变量i的值介于开始值和结束值之间时,循环体中的代码会被执行。

子母公司名称的合并

实际工作中,根据专利统计分析的需要,往往会把公司A的所有全资子公司的专利当成A的专利来进行统计。为了后续处理的方便,需要针对每一个有全资子公司的公司,将其所有全资子公司的名称替换为该公司的名称。当涉及到的公司成千上万时,用Excel的查找替换操作效率很低且容易出错。下面介绍一下如何用VBA语言进行自动处理。

首先,在Excel中新建一张表单,名字叫做sheetParent,在此表单中列出子母公司名称映射表,结构如表1所示。

表1 子母公司名称映射表

其次,找到要进行子母公司合并的Excel表单sheetDst,记下公司的名称所在的列,如D列(列的数字序号为4),如表2所示。

表2 待进行子母公司合并的表

在VBA代码编辑器中输入如下代码:

Sub 合并子母公司名称()

‘子母公司名称映射表的行数

parentEnd = sheetParent.UsedRange.Rows. Count

‘待进行子母公司合并的表的行数

dstEnd = sheetDst.UsedRange.Rows.Count

‘二重循环逐条比较

For m = 1 To dstEnd

For n = 1 To parentEnd

If sheetDst.Cells(m, 4) = sheetParent.Cells(n,2) Then

‘找到一个存在母公司的子公司,将其名称换位母公司名称

sheetDst.Cells(m, 4) = sheetParent.Cells(n,1)

Exit For

End If

Next n

Next m

End Sub

按F5键执行代码,以采用酷睿i5为CPU、内存4GB的台式机为例,采用上述方法处理15万条左右的专利数据,将其中所有可能的子母公司名称进行合并,只要不到一分钟即可完成,不仅大大提高了效率,而且也保证了准确性,减少了人工处理的误操作。

对各类特色公司的标引

专利统计中,有时候需要对安徽省的高新技术公司、优秀民营公司、优势产业公司的专利情况进行跟踪分析。而原始专利数据中并没有将这些公司明确标引出来。采用VBA可以很方便的完成这项标引工作,下面以标引高新技术公司为例进行说明。

首先,在Excel中新建一张表单,名字叫做sheetHiTech,在此表单中列出安徽省高新技术公司的名单,结构如表3所示。

表3 高新技术公司名单表

其次,找到要进行标引的Excel表单sheetDst,如表4。记下公司的名称所在的列,如D列(列的数字序号为4),并将Z列(列的数字序号为26)设定为标引列,如果某公司是高新技术公司,则该列标记为“高新”,否则标记为空。

表4 待进行标引的表

在VBA编辑器中输入如下代码:

Sub 标引高新技术公司()

‘高新技术公司列表的行数

srcEnd = sheetHiTech.UsedRange.Rows.Count‘待标引的表的行数

dstEnd = sheetDst.UsedRange.Rows.Count

'二重循环比较

For m = 1 To dstEnd

For n = 1 To hiTechEnd

If sheetDst.Cells(m, 4) = sheetHiTech.Cells(n,1) Then

‘找到一个高新技术公司,将其标引为“高新”

sheetDst.Cells(m, 26) = "高新"

Exit For

End If

Next n

Next m

End Sub

最后,对VBA处理后的数据排序,就可以把所有高新技术公司筛选出来,进行进一步统计和分析。排序的代码为:

Me.range(“A1”, “Z86546").Sort key1:="标引列”, order1:=xlDescending, Header:=xlYes

其中,A1和Z86546以对角线的形式指定了待进行标引的表中所有数据的范围,xlDescending表示将数据降序排列。

结语

针对专利数据的子母公司合并以及各类特色公司标引问题,利用VBA代码能够方便快捷地实现,避免了手工操作效率低下、易出错的问题,同时节省了使用专业数据库软件进行处理的高昂费用成本。实践表明,采用VBA处理30万条以下的中小量专利数据时,非常方便实用。

10.3969/j.issn.1001-8972.2015.10.019

猜你喜欢

行数标引表单
电子表单系统应用分析
英语专业八级统测改错试题语言特征
玉米超多穗行数基因型通15D969 的 单倍体育种效应
档案主题标引与分类标引的比较分析
浅谈网页制作中表单的教学
玉米超多穗行数DH系15D969的发现
本刊对来稿中关键词标引的要求
本刊对来稿中关键词标引的要求
甘蔗间种大豆栽培试验研究
本刊对来稿中关键词标引的要求