利用VBA提高定值批量整定效率的方法论文_梁景棠,王浩岩,时泽锟

(广东电网有限责任公司惠州供电局 516000)

摘要:定值的整定存在着大量的重复工作,如:设定定值单编号、设定整定日期、填写定值修改原因以及修改项目等均可能相似甚至相同,如能利用文档自带的VBA功能自动填写,加以人工校正,必能节省大量不必要的重复工作时间,提高定值整定效率。

关键词:定值批量整定;VBA;整定计算书;自动打印

在定值整定工作中,常常遇到需要批量修改定值的情况:1、全站综自改造;2、整定策略调整,全站同类型保护装置同时调整部分值或控制字;3、多条线路依次更换CT;4、消弧线圈接地改造成小电阻接地系统,全站保护投入零序保护等。该类型的定值更改常常变化项目相同或相似,相应的整定计算书也基本相同。

在这种情况下,定值的整定存在着大量的重复工作,如:设定定值单编号、设定整定日期、填写定值修改原因以及修改项目等均可能相似甚至相同,如能利用文档自带的VBA功能自动填写,加以人工校正,必能节省大量不必要的重复工作时间,提高定值整定效率。

如图,新定值单编号固定部分为“2019-F-”,自动递增部分为“2294”,每次生成新定值由固定部分加自动递增部分合成新定值单编号,生成后自动递增部分自动加1变成:“2295”,依次类推。同时在生成新定值单编号前应将原定值单编号所在单元格“T4”复制到作废定值单编号单元格“T43”去,这样就完成了。具体代码如下:

Dim AF7 As String

AF7 = ActiveSheet.Range("AF7")'获取原定值单编号单元格

Dim AF8 As String

AF8 = ActiveSheet.Range("AF8")'获取作废定值单编号单元格

ActiveSheet.Range(AF8)= ActiveSheet.Range(AF7)'将原定值单编号写到作废定值单编号单元格

ActiveSheet.Range(AF7)= ActiveSheet.Range("AF9")& ctiveSheet.Range("AG9")'将新定值单编号写到作废定值单编号单元格

对于固定变化的项目,刚可以在初始模板在统一修改,后续由模板生成的定值单,就不再需要修改,如例如该站重合闸时间统一调整为5秒,只需将模板修改为5秒,后续生成的定值单重合闸时间均为5秒。

最后是由模板生成一份新的定值单,方法如下:

Dim name As String

ActiveSheet.Range("AD16")= ActiveSheet.Range("AE4")& "站10kV" & ActiveSheet.Range("AE5")& "保护" & ActiveSheet.Range("AH4")& "定值" & ActiveSheet.Range(AF7)& "作废" & ActiveSheet.Range(AF8) ‘按站名+10kV+线路名+型号+新定值单号+作废定值单号命名新的定值单文档

name = ActiveSheet.Range("AD16")

Path = ActiveWorkbook.Path

母体 = ActiveWorkbook.name

ActiveWorkbook.SaveAs Filename:=Path & "\" & name & ".xls" ‘生成新的定值单文档。

实际整定定值中,还需要出具相应的定值整定计算书,以描述定值单主要项目的来由。定值整定计算书并不需要出现在定值单中,但如果另外形成一个文档,往往给存放管理增添工作,可以将其集成到定值单文档中,并将其打印后隐藏,同时将文档通过代码锁定,这样保存一份定值单的同时也保存了其计算书,又避免了浏览过程中误修改定值。

这里需要用到自动打印、隐藏以及锁定等方法。

具体代码如下:

Dim jss1,jss2 As Long

jss1 = ActiveSheet.Range("AF13")

jss2 = ActiveSheet.Range("AG13")'AF13、AG13分别存放的是计算书开始与结束的行号

Rows(jss1 & ":" & jss2).Select '选定计算书

Selection.PrintOut Copies:=1 '打印计算书

Selection.EntireRow.Hidden = True '隐藏计算书

ActiveWorkbook.Save

Columns("AC:AI").Select '选定无关区域

Selection.EntireColumn.Hidden = True '隐藏不必要的内容

ActiveSheet.Protect Password:="123",DrawingObjects:=True,Contents:=True,Scenarios:=False,UserInterfaceOnly:=False,AllowFormattingCells:=False,AllowFormattingColumns:=False,AllowFormattingRows:=False,AllowInsertingColumns:=False,AllowInsertingRows:=False,AllowInsertingHyperlinks:=False,AllowDeletingColumns:=False,AllowDeletingRows:=False,AllowSorting:=False,AllowFiltering:=False,AllowUsingPivotTables:=False '锁定计算书,避免误修改。

ActiveWorkbook.Save '自动保存一次。

至此,一份完整的定值单自动生成,并隐含了相应的计算书。

结语:

以上为定值单变化部分的关键代码,还可以根据整定需要加入自动存放对应站点文件夹、自动刷新日期、自动提取文件名至定值单目录文件等功能。

参考文献:

[1]Excel VBA 编程实战宝典 伍远高 清华大学出版社

[2]Excel VBA 程序开发自学宝典(第3版)罗刚君 电子工业出版社

论文作者:梁景棠,王浩岩,时泽锟

论文发表刊物:《云南电业》2019年5期

论文发表时间:2019/10/31

标签:;  ;  ;  ;  ;  ;  ;  ;  

利用VBA提高定值批量整定效率的方法论文_梁景棠,王浩岩,时泽锟
下载Doc文档

猜你喜欢