2024年6月8日发(作者:)

l72 福 建 电脑 

函数和vbscript在日常办公中的分析应用 

钟江华 

(福建省漳州市农业学校福建漳州363000) 

【摘 要】:本文从实际出发,列举了工作中解决问题的成功案例,就函数和vb脚本如何具 

体应用到案例中进行了具体分析 . 

【关键词】:函数vlookup if mod column row index宏vbscript 

 8列(p列) 

在我们的日常办公巾.经常需要处理大量的 

息存放在第一行的第九列(i列)到1

数据。办公软件omce在数据的收集、汇总和分析 

第8个学生的信息存放在第57列到64列. 

……

方面给我们提供了很大的便利 但是.仅仅只是依 

所以须要用取余函数mod来定位:l天l为余数为零 

靠omce提供的菜单功能有时候仍然无法达成我 其实是每个学生的第8列的信息(毕业证号列). 

们的目的.这时候就需要用到ofifce提供的丰富 所以又用到了选择函数ifn综合考虑这些冈素就 

的函数功能.甚至需要用到一些vb的脚本编程知 

构造成功了下面这个公式: 

识。下面是我平常工作中遇到的一些例子。 

毕业生相片名册的处理 

=vlookup(¥a2,sheet2 1¥a¥2:¥i¥1254,if(oord(column0,8)=O,8, 

mod(columnO,8)),true)。 

i事嚏

童 

{ 

l 一. 虫 

i 

 l-一  }一 

二、工资条的打印 

…,I: 

镛伸 I 

¨ 1 

糠,”带 I 

一~l 

裤州布

l#∞‘巧

一一l : 

" jl州  li 

l 

‘00I 

10l瑚It, 

谢肚肚i 暂吨 i

鼻 l 

; 

1 

~ 甯 

H 

3Im- 

n 

l 

l 

l 

一 

∞ l5 I 矗 

痒J・I 1 

~一 I 

’* 

㈣l∞

一… } 叠 

#)一

 

¨B I; 

擅, 市l 岢 

 

序号 掌●号 

l 。S,I竹呻0计 

2 ∞3】 ∞№ 

, ∞ lm” 

4 

5 

6 

蛀名 l性料 出生年月 

棘峨钟i 男 I1黼一5-I3) 

穿农 { 男 l1竹0・10—10 

皓璃^I 

惫景勇I.舅 

磷#杰} 男 

女 

I。9I-l2-1 

l帕3一 

掌崩 

盎年 

叁年 

叁年 

盎年 

盎年 

盎年 

证书h孽 阜盘证号 

注Ot2)3l拄03。l 职毕宰(21112)DO80 1 

口012)31笠∞位 艇毕字(201 2)00802 

∞l2 I麓∞∞ 甚毕宰(2012)0080 ̄ 

啪l2)3I m 职毕牢(2OI 2)00804 

娌ol?)3I 

09l2bt≈ 

覃!毕宇(2012)0O805 

葺!毕宰(2Gt2)00806 

学校的工资管理要求打印工资条 工资条的 

打印要求打印后能够裁成一条一条的.这需要每 

O∞t 13l 韩噢晦i 

7 

3 

Og3i越∞l4,4 睬睦#l 直 

l22。m 5 {1弓技萍{ 虫 

垒年 

盎年 

啪j2) 220 ̄OT 职毕罕c20t2)00807 

f∞】2)3122m 织睾宰 20垤)0日蜘8 

个人的工资条上都带有表头信息.而且两条信息 

之间要求有一空行(如下图)。当然,工资条打印这 

张表希望由工资总表生成以避免重复工作 下面 

前一段时问.学校里做毕业生的相片名册(如 

具体分析公式的构造过程: 

上图) 由于数据量非常大.教务处的同事希望能 

首先.所有的行号能被3整除的行都是空格, 

够利用已有的毕业生名册里的数据.自动生成相 

所以只要用到取余函数和取行号函数就可以了 

片名册里的相应的数据 同事想到了Word提供的 

(公式第一行):其次,所有行号被3除余l的行的 

邮件合并的功能 可是.一页相片名册有8个学生 

内容都固定是工资总表的第一行(公式第二行); 

的信息.而毕业生名册的每一行只有一个学生的 

最后.行号被3除余2的行的内容对应于工资总 

信息.怎么办?同事找到了我。 

表的第2、3、4……行,利用index函数进行搜索和 

这里需要解决的是:如何把原来每行存放一一 

引用(公式第三行) 整个公式合成如下式: 

个学生的信息通过函数计算的方法转换成每行按 

顺序存放八个学生的信息 

首先须要插入新的工作表sbeet3.然后在新 

的工作表巾利用vlookuD函数搜索单元格区 

sheet2 1¥ai{;2:¥i¥1254域的第一列。然后返同该区域 

=if(rnod(row0,3)=O,””, 

if(mod(rowO,3)=l,上资总表!a¥1, 

index(_.1i总表!Sa:¥s,(rowO+4)/3-c【'I【Jln|1O))) 

三、学生各种出勤的统计 

班主任工作须要对学生在各种集体活动巾的 

}{席情况有充分的了解和统计以帮助我们随时掌 

相同行相应单元格r1]的值 闲为第二个学生的信 

福 建 电 脑 173 

b4—8h831+(c4一j5c¥31 7”,再复制公式。 

握学生的动态,确定重点关照对象。这个统计数据 

式“Sd¥3+(

更是期末给学生德育评分的重要根据。为了对这 

这里应 注意公式巾绝对地址的引用。 

2、表格的美化 

个评分做到公正、公平,我想到了利用如下图所示 

表格的美化不只是为了单纯的视觉效果.冈 

电子表格对班级学生的晚自修、早操、卫生区值日 

情况进行统计。 

下面我谈谈这个电子表格的具体实现。 

为数据量较多.单元格较小。我还希望借助表格的 

美化来更好的定位单元格。在如上 所示的电子 

表格rf1.我在从第3行开始的奇数行上填充上淡 

】1_ 

。 

鑫 

#}#: 程 , j {蛙奢#沈£ 1  ;£ 17 } 0弹 弥l  #辣斗錾 薜 珏 强l 姑并轻寐 嚣张  薜 

蓝色.从第4行开始的偶数行上填充上浅青绿色。 

薪鼻蜂样%月摩囊墓矗牟吾簟R屠聋I镶女目挚_毽l 挂尊磷舞巧蕈薏增饵§茹毒d熹暑俸童 拜碍车 萎∞ 第  意 宽 

1、统计项目的自动填充 

统计项目的自动填充是最简单的,只要在e3 

至e5单元格里依次填上“自习”,“早操”,“卫生”, 

然后选定这3个单元格拖动填充柄即可快速填 

充。 

因为每个工作日有三个统计项目.每周有五 

个工作日.也就是说每周需要l5行来存放统计数 

据 体现在本电子表格就是c3:c17单元格为1, 

cl8:c32单元格为2,c33:c47单元格为3…… 

c271:c285为19。如此多的内容靠手工填充显然 

是不现实的.也没有充分利用电子表格的自动功 

一一~一

能。如何实现?首先以自动填充的方法在a3:a287 

一一一

填充1到285的数字序列 其次填充星期这列的 

数字,因为每天有三个统计项目,所以b列的数字 

序列为(1、1、1……5、5、5、1、1、1……5、5、5)。从数 

字序列(1、2、3……13、14、151到数字序列(1、1、1 

……

5、5、5)的映射,可以用ceiling函数来实现;但 

是如何让16以后的数字序列重新映射到f1、1、1 

……

5、5、5)?我想到了求余函数和判断函数。把这 

两个函数加入公式之后.最后的具体公式为“if 

(mod(ceiling(a3/3,1),5)=0,5,mod(ceiling(a3/3,1),5))”。 

第三.填充周次这列,也就是实现从数字序列(1、 

2、3……283、284、2851到数字序列f1、1、1……19、 

19、19)的映射。这需要用到取整函数。这类的函数 

有int、round、ceiling和floor这四个函数,它们都 

可以帮助实现这两个数字序列的映射.但由于取 

整规则是不一样的.公式也就不一样 这里我采用 

了ceiling函数,具体公式为“c3=ceiling(a3/15。11’’。 

最后.复制公式,就可在整个C列填充上相应的周 

次。第四.工作日的填充需要用到a、b两列。须要 

先在d3单元格填上第一周第一个工作日“2月16 

日”.下面的单元格对比d3单元格相差的天数和 

周数.加上差值即可。具体为在d4单元格应用公 

整个表格有二百多行,当然不能一行一行地做,表 

格的自动套用格式功能的效果也不能让我很满 

意.于是我想到了利用excel自带的visual basic 

编辑器进行颜色的自动填充。下面的循环语句就 

可以实现这个功能 

一 一

 一一~

对于没学过编程的人.上面的语句完全手工 

一一一一 一一 

编写可能有点难,

 

其实,可以利用“宏”。大家知道, 

宏是微软公司为其omce软件包设计的一个特殊 

功能.它是将一系列的命令和指令组合在一起,形 

成一个命令.以实现任务执行的自动化。目的是让 

用户文档中的一些任务自动化。[1]office中的Word 

和excel都有宏 可创建并执行一个宏.以替代人 

工进行一系列费时而重复的excel操作 

在这里.只要将填充第3行和第4行的行为 

录制为宏.然后在visual basic编辑器中修改这个 

宏。将rows(3)改为rows(i1,rows(4)改为rows(i+1), 

在第一行加上语句“for i一3 to 292 step 2”.最后 

行加上“next”即可。 

同样道理.可以借助宏和visual basic编辑器 

把单元格左右两边框的颜色分别设为玫瑰红和淡 

紫色 以下为具体的代码 

fnr i=6 to 43 step 2 

columns(i).select 

selection.borders(xldiagonaldown).1inestyle=xlnone 

selection.borders(xldiagonalup).1inestyle:xlnone 

with selection.borders(xledgeleft) 

1inestyle=xlcontinuous 

weight=xlthin 

colorindex=39 

(下转第1 82页) 

182 

Dim C As Double 

2 3 4 5 6 7 8 9 

福 建 电脑 2013年第2期 

以《基于web的图书管理系统》为例:实验要 

If(a>0 And b>O)Then 

c=c/a 

求:利用((JAVA语言》、《软件工程》和《软件测试》 

所学知识完成系统开发 利用所学专业知识对系 

统进行压力测试、兼容测试和数据库测试,并对系 

统调优 在软件测试实训课程巾始终贯穿PSP过 

程和TSP过程.它有助于学生职业能力和职业素 

End if 

If(a>l or c>1)Then 

c=c+1 

End if 

e=b+c 

养的培养 

我院按照“2+1+1”培养模式 有一年时间学 

生在企业实习.使学生参与项目开发整体流程.包 

括软件工程过程和测试过程 在此过程中.培养学 

生的团队合作和沟通能力.使学生既巩固理论基 

础知识。又锻炼测试能力。 

3.结束语 

人才的培养是一个综合的过程 在实践教学 

体系中,采用项目教学,加强实践环节的考核,对 

实践中表现突出的学生给予多种形式的肯定和鼓 

励。同样.良好文化环境是保证人才健康成长的不 

可忽视的软环境。 

图2流程图 

参考文献: 

实验要求:使用语句覆盖、判定覆盖、条件覆 

【1】田小霞.优化《软件测试技术》的教学【『】.电脑学习, 

盖、判定/条件覆盖、组合覆盖和路径覆盖方法设 

2011,(02) 

计测试用例 

【2兰景英.应用型软件测试人才培养模式探索与实践U】.2】 

(04) 

综合实验采用“项目驱动”教学 项目基础要 

潍坊教育学院学报,2011,

3】朱少民.软件测试方法和技术.北京:清华大学出版社, 

综合多门课程的知识.项目执行培养学生分析问 

题和解决问题的能力.提高学生动手能力。 

2008 

(上接第173页) 

selection.borders(xledgetop).1inestyle=xlnone 

selection.borders(xledgebottom).1inestyle=xlnone 

with selection.borders(xledgeright) 

格的函数和vb脚本能够帮助我们更好的完成平 

时的工作,而且,只要我们善于思考,其实函数和 

脚本也不是那么难的。 

参考文献: 

[1]word宏病毒清除技术.金山反病毒资讯网:www.pcon— 

1inestyle=xleontinuous 

weight=xlthin 

colorindex=38 

ine.con.cr1. 

从上面的几个实例中,我们可以发现,电子表 

[2]excel帮助系统..microsoft excel visual basic参考.