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.
从上面的几个实例中,我们可以发现,电子表
l
[2]excel帮助系统..microsoft excel visual basic参考.


发布评论