一种循环伏安数据的自动分离方法

文档序号:9579067阅读:292来源:国知局
一种循环伏安数据的自动分离方法
【技术领域】
[0001]本发明涉及Excel VBA模块实现数据的自动化处理,属于计算机软件及语言在自然科学中的应用领域。
【背景技术】
[0002]无论是在自然科学还是在社会科学的研究中,常常需要对各种数据进行处理,大量、重复的工作比较繁琐,比如打开文档、分析数据、导出处理结果、关闭文档等。此类重复性的工作的自动化处理可以利用编程软件或软件的某些功能来实现,比如Matlab、VC、VB、VF等。对于初学者,利用这些软件需要花费更多精力学习,而且很多编程软件缺乏强大的函数库,实现数据处理时需要大量的复杂编程工作,因此需要一种能简单、快速处理重复工作的编程工具,能够在较短的时间完成代码编写和调试。所周知,Excel不仅具有灵活方便的图像文字显示功能,而且Excel本身包含了大量的函数,对数据都具有强大的处理能力,但这些函数只适用单时窗,滚动时窗需要人工配合完成,如能实现自动化处理,将大大提高工作的效率。综合利用VBA自动化语言和Excel函数,可以很好的完成代码编写和数据处理工作,其思路是在Excel中编写一段程序,作为宏插入到Excel中,就能方便实现数据处理。

【发明内容】

[0003]本发明针对循环伏安数据处理效率低,需要安装大软件来完成处理的状况,采用Excel VBA模块编写了循环伏安数据自动化处理程序。在Excel函数的基础之上,通过采用VBA自动化语言,实现了材料循环伏安数据自动分离功能。与传统手工处理相比,本发明仅需3~15s便完成了数据处理,将处理效率提高了 2~3个数量级,明显提高了工作效率和准确性;与大型软件处理相比,在不丧失准确性和效率的前提下,无需安装高耗内存,简便快捷的实现了循环伏安数据的自动分离。
[0004]本发明的特点在于:通过采用Excel VBA模块编写了循环伏安数据自动化处理程序,采用更为简便的方法,实现了循环伏安数据的自动化处理,并将处理的效率提高了 2~3个数量级。
[0005]本发明具有以下四个特点:
(1)特征在于采用Max函数和Countif函数判定文件的数据结构;
(2)其特征在于采用Index函数实现数据的分离;
(3)通过打开启用宏的Excel文件,实现数据的自动化处理,处理完成后保存处理结果并自动关闭Excel文件;
(4)采用ExcelVBA模块编写了循环伏安数据的自动化处理程序,实现了数据的自动化处理,并将处理的效率提高了 2~3个数量级。
【附图说明】
[0006]图1循环伏安数据自动处理流程图。
[0007]图2 Al95Cu5合金在0.05mol/L甲酸溶液中的循环伏安原始数据。
[0008]图3 Al95Cu15合金循环伏安数据的分离结果。
[0009]图4。合金在0.05mol/L甲酸溶液中的循环伏安原始数据。
[0010]图5 AlgtjCu:。合金循环伏安数据的分离结果。
[0011]图6 AlS5Cu15合金在0.05mol/L甲酸溶液中的循环伏安原始数据。
[0012]图7 AlS5Cu15合金循环伏安数据的分离结果。
[0013]图8 AlSQCu2。合金在0.05mol/L甲酸溶液中的循环伏安原始数据。
[0014]图9 AlS(]Cu2。合金循环伏安数据的分离结果。
[0015]图10原始数据及处理结果文件的概图。
[0016]图11 VBA程序处理与手动处理的效率对比。
【具体实施方式】
[0017]1.循环伏安数据的处理流程。
[0018]本发明采用VBA模块编写代码,实现循环伏安数据的自动化处理,数据处理流程如图1所示。具体的实现过程如下:
(1)数据导入:利用Open命令将原始数据导入Excel文件;
(2)预处理:采用Max函数和Countif函数判定文件的数据结构,删除序号和多余的文本信息;
(3)数据分离:采用Index函数实现每次循环电流和电位数据的分离;
(4)数据合并:将分组的电流和电位数据进行合并;
(5)结果存储:将最终的结果保存为csv文件。
[0019]本发明是通过以下措施来实现的:
(1)代码编写通过ExcelVBA录制宏、修改、调试、保存代码来实现的;
(2)代码的功能是通过ExcelVBA调用宏来实现。
[0020]2循环伏安数据处理程序代码。
[0021]①宏的调用。
[0022]Sub auto_open ()
Call Converter ’ 调用宏 End Sub ο
[0023]②代码。
[0024]Dim total, group, number As Long Dim rowsyuan As String
Sub Converter ()
J Converter 宏
Applicat1n.DisplayAlerts = False
ChDir 〃C: \Users\Administrator\Desktop\ 单列转换成多列 VBA 代码” Workbooks.0penText Filename:= _
"C:\Users\Administrator\Desktop\单列转换成多列VBA代码\原始数据.Txt", Origin:=936, _
StartRow:=l, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote,
ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False,
Comma:=False _
,Space:=False, Other:=False, Fieldlnfo:=Array(1,1),_
Trai1ingMinusNumbers:=True Rows ("1:1").Select Select1n.Delete Shift:=xlUp JActiveffindow.ScrollColumn = 2 Range("HI").Select
ActiveCell.FormulaRlCl = 〃=MAX(C[-5])" number = Sheets (〃 原始数据〃).[HI].Value ’ Range(〃G1〃).Value = number Range ("H2").Select
ActiveCell.FormulaRlCl = "=C0UNTIF(C[_5],〃〃>0〃〃)/R[_l]C" group = Sheets ("原始数据").[H2].Value ’ Range(〃G2〃).Value = group Range ("H3").Select
ActiveCell.FormulaRlCl = 〃=R[_1]C*(R[_2]C+l)〃 total = Sheets (〃 原始数据〃).[H3].Value ’ Range("G3").Value = total Range("Dl").Select
ActiveCell.FormulaRlCl = 〃=IF(RC[_2]=////////,0,1)"
Range ("Dl").Select
Select1n.AutoFill Destinat1n:=Range(Cells(1, 4),Cells(total, 4)) Range (Cells (1,4),Cells (total, 4)).Select Columns("D:D").Select
Activefforkbook.Worksheets ("原始数据").Sort.SortFields.ClearActivefforkbook.Worksheets 原始数据").Sort.SortFields.AddKey:=Range("Dl"), _
SortOn:=xlSortOnValues, Order:=xlAscending,DataOpt1n:=xlSortNormal
With Activefforkbook.Worksheets ("原始数据").Sort.SetRange Range(Cells (1, 1),Cells (total, 4)).Header = xlN0.0rientat1n = xlTopToBottom.SortMethod = xlPinYin?Apply End With
Rows (1 & 〃:" & group).Select ’Rows ("1:400").Select
Select1n.Delete Shift:=xlUp
Columns("C:D").Select
Select1n.Delete Shift:=xlToLeft
Range("Gl").Select
Range (〃G1〃).Value = number
Range ("G2").Select
Range (〃G2〃).Value = group
Range("G3").Select
Range(〃G3〃).Value = total
Columns("B:B").Select
Select1n.Copy
Sheets.Add After:=Sheets(Sheets.Count)
Select1n.PasteSpecial Paste:=xlPasteValues, Operat1n:=xlNone,SkipBlanks _:=False,Transpose:=FalseRange("Bl").SelectActiveCell.FormulaRlCl = 〃=INDEX(C1,(COLUMN(RC[-1])_1)* 原始数据!R1C7+R0W(RC[-1]))〃
Range("Bl").SelectSelect1n.AutoFill Destinat1n:=Range(Cells(1, 2), Cells(1, group +1)),Type:=xlFillDefault
Range (Cells (1,2),Cells (1,group + 1)).Select
Select1n.AutoFill Destinat1n:=Range(Cells (1, 2),Cells (number, group+ 1)),Type:=xlFillDefault
Range (Cells (1,2),Cells(number, group + 1)).Select Select1n.Copy
Sheets.Add After:=Sheets (Sheets.Count)
Range("Bl").SelectSelect1n.PasteSpecial Paste:=xlPasteValues, Operat1n:=xlNone,SkipBlanks _:=False,Transpose:=False Sheets (〃 原始数据 〃).Select Columns("B:B").Select Select1n.Delete Shift:=xlToLeft Range ("Bl").Select ActiveCell.FormulaRlCl = 〃=INDEX(C1,(COLUMN(RC[-1])_1)* 原始数据!R1C7+R0W(RC[-1]))〃 Range ("Bl").Select
Select1n.AutoFill Destinat1n:=Range(Cells(1, 2),Cells(number, 2)),Type:=xlFillDefault
Range (Cells (1,2),Cells(number, 2)).Select Select1n.Copy Sheets (//Sheet2//).Select Range (〃A1〃).Select Select1n.PasteSpecial Paste:=xlPasteValues, Operat1n:=xlNone, SkipBlanks _:=False,Transpose:=False Range(〃A1〃).Select
Range (Cells (1,1),Cells (number, group + 1)).Select Select1n.Copy
Activefforkbook.SaveAs Filename:= _
"C:\Users\Administrator\Desktop\单列转换成多列VBA代码\处理结果.txt〃, FileFormat:=xlText, _
CreateBackup:=False Activefforkbook.Save Activeffindow.Close Applicat1n.DisplayAlerts = True Applicat1n.Quit End Sub 0
[0025]3.具体实例。
[0026]实施例1:
采用Excel-VBA编写的程序完成Al95Cu5合金的数据处理。
[0027]实施例2:
采用Excel-VBA编写的程序完成Al9(]CUl。合金的数据处理。
[0028]实施例3:
采用Excel-VBA编写的程序完成AlS5Cu15合金的数据处理。
[0029]实施例4:
采用Excel-VBA编写的程序完成AlS(]Cu2。合金的数据处理。
[0030]对比例1:
手工完成Al95Cu5合金的数据处理。
[0031]对比例2:
手工完成Ai9(]cUl。合金的数据处理。
[0032]对比例3:
手工完成AlS5Cu15合金的数据处理。
[0033]对比例4:
手工完成AlS(]Cu2。合金的数据处理。
[0034]本发明实施处理的数据为电化学工作站测得的(电压,电流,序号)数据组,处理的过程详见代码部分。通过图2~图11,可以明显看出编写的程序能够有效地处理电阻率数据,将数据处理的效率提高了 2~3个数量级。
[0035]综上所述,编写的程序能够有效处理数据,实现了循环伏安数据的自动化处理,并将处理的效率提高了 2~3个数量级。
【主权项】
1.一种利用Excel VBA模块实现循环伏安数据的自动化处理,其特征在于采用VBA编码实现了循环伏安数据自动分离功能。2.权利要求1所述的数据处理过程,其特征在于采用Max函数和Countif函数判定文件的数据结构。3.权利要求1所述的数据分离,其特征在于采用Index函数实现数据的分离。
【专利摘要】本发明涉及Excel?VBA模块实现数据的自动化处理。本发明采用Excel?VBA模块编写代码,实现了循环伏安数据自动分离功能。不仅大大降低了编程的复杂性,提高了程序的可读性和通用性,而且明显提高了工作效率和准确性,具有重要的应用价值。
【IPC分类】G06F9/44
【公开号】CN105335165
【申请号】CN201510877647
【发明人】贾鹏, 耿浩然, 王明旭, 李明洋, 丁奕钧, 张顺
【申请人】济南大学
【公开日】2016年2月17日
【申请日】2015年12月4日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1