■ 曾俊辉 Zeng Junhui
Microsoft Excel是微软公司的办公软件Microsoft office的组件之一,它可以进行各种数据的处理、统计分析和辅助决策操作,广泛地应用于工程管理、统计等众多领域。在此介绍一种以Excel办公软件为平台,以Excel函数为工具,应用于工程质量监督管理的新方法。通过对工程质量监督抽查记录的管理实例,介绍用该方法自动生成记录表的编程过程。
质量监督抽查记录台帐的工作表名称设置为“台帐”(图1)。抽查记录的工作表名称从“001”开始。这样做的好处是在台帐工作表的 “编号” (B列)和抽查记录工作表“名称”之间建立关联,便于在抽查记录工作表中自动调用台帐工作表的数据内容。最终实现在台帐工作表中录入监督抽查的相关信息,便自动生成所需的抽查记录表格(图2 )。
要实现在抽查记录工作表中自动调用台帐工作表的数据内容,首先就要提取出当前抽查记录工作表的名称,如“001”,下一步才能通过编辑公式来调用台帐工作表中对应编号“001”的相应内容。
2.1.1 打开VBA
Excel2003支持VBA编程,VBA是Visual Basic For Application的简写形式。VBA的使用可以达成执行特定功能或是重复性高的操作。
执行系统菜单中的“工具”/“宏”/“Visual Basic 编辑器”命令,会打开Visual Basic编辑窗口,在VBA系统中执行“插入”/“模块”命令,弹出“模块1”代码编写窗口。
2.1.2 编写自定义函数的程序代码
在刚才弹出的“模块1”代码编写窗口中,输入如下代码:
Public Function ThisSheetName(……) As String
Application.Volatile True
ThisSheetName = Application.Caller.Parent.Name
End Function
代码编辑完成后保存并退出VBA。
退出VBA,则在工作表中自动添加自定义函数This Sheet Name(……),其功能是调用当前工作表名称。但这个函数是以一个宏的形式存在的,要使它能够有效,必须将EXCEL2003系统的宏安全级别设为中级或低级。在系统菜单中的“工具”/“宏”/“安全性…”对话框中可以对其进行设置。
将图2所示的工程质量监督抽查记录工作表“001”中F1单元格的计算公式编辑为“=TEXT(This Sheet Name(……),"0")+2”。 This Sheet Name(……)函数可以得到当前工作表名称“001”; TEXT(……)函数可以将数值“001”转换为按指定数字格式表示的数值“1”;“+2”的目的是我们要得到台帐工作表中对应编号为“001”的第3行内容。所以最终公式得出的值为“3 ”。
通过上面的步骤,我们先是得到了当前抽查记录工作表名称“001”,然后通过计算调整,得到了对应在台帐工作表“编号”为001中所需内容的行号“3”,下面将通过EXCEL自带的系统函数来编辑公式,在抽查记录工作表“001”中,跨工作表调用台帐工作表中“台帐”相应单元格的内容。
在抽查记录工作表“001”中,单击C4单元格,输入公式“=INDIRECT("台帐"&"!"&"F"&$F$1)”。
系统函数INDIRECT(……)的作用是引用括号内字符所指定的单元格的内容。这里的("台帐"&"!"&"F"&$F$1)指定的位置是台帐工作表的F3单元格 (台帐! F3),即图1中所示“工程名称”这一列第三行的内容。公式编辑完成之后,系统会对C4单元格自动计算更新,显示的结果为“***项目 16#楼”。
按照上述步骤,依次对图2所示抽查记录工作表“001”中的E4、C5、E5、A7单元格分别输入公式“=INDIRECT("台帐"&"!"&"G"&$F$1)”、“ =INDIRECT("台帐 "&"!"&"D"&$F$1)”、“ =INDIRECT("台帐 "&"!"&"E"&$F$1)”、“ =INDIRECT("台帐"&"!"&"J"&$F$1)”。系统自动计算更新,分别在相应单元格显示“基础梁”、“ 16-3~16-6/16-C~16-L”、“ 2011-11-15”、“抽查情况( 略 )”。
对于正在办理质量监督手续且提前进行介入的工程,由于还没有质量监督注册登记号,台帐工作表中的“质量监督号”可能为空白,如果直接输入上述公式进行调用,返回的结果是“0”。这会影响到抽查记录表的后续打印操作。
以图2所示抽查记录工作表“001”的B3单元格为例,增加一个系统判断函数IF(……)对调用值进行判断,如果调用值为空,则显示空格。如果调用值存在,则显示所调用内容。输入公式“=IF(INDIRECT("台帐"&"!"&"C"&$F$1)="","",INDIRECT("台帐"&"!"&"C"&$F$1))”。如果图1所示台帐工作表“台帐”中的C3单元格为空白,则显示空白。这里调用值为非空格,所以会显示“WZJ 2011-50”。
通过上述操作,该工程质量监督抽查记录管理文件制作成功,在实际使用中,只需要在图1所示的质量监督抽查记录台帐即“台帐”工作表中,在“编号”001对应行输入“质量监督号”、“抽查部位”、“抽查日期”、“工程名称”、“抽查部位”、“抽查情况”,在图2所示的工程质量监督抽查记录即“001”工作表中,系统便能自动填充相应内容。
以抽查记录工作表“001”为母表,复制其他工作表,名称依次为“002、003、004、005…”。这样一来就能很快地制作好数量较多的抽查记录。互联网上还能找到以编号来复制工作表的EXCEL工具,用来复制工作表会更便捷。
本文以工程质量监督抽查记录的管理、自动生成为例,介绍了利用系统函数、自定义函数编辑计算公式的方法和技巧。此外,还可以举一反三将其运用到整改通知、监督验收台帐的管理工作中,对于提高工程质量监督的工作效率具有参考和借鉴作用。