




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
用excel制作一份万年历今天我们介绍用excel制作万年历的方法。这个万年历可以显示当月的月历,还可以随意查阅任何日期所属的月历,非常方便。如果你愿意,还可以让它在特殊的日子里显示不同的提醒文字,一起来试试吧!本文所涉及到的函数有:1、and (logical1,logical2, .)2、date (year,month,day)3、day (serial_number)4、if (logical,value_if_true,value_if_false)5、int (number)6、month (serial_number)7、now ()8、or (logical1,logical2, .) 1、启动excel2003,新建一个工作表,取名保存(如万年历.xls),并在相应的单元格中,输入如图1所示的文本。2、同时选中b1、c1、d1单元格,按“格式”工具栏上的“合并及居中”按钮,将其合并成一个单元格,并输入公式:=today()。 选中b1(合并后的)单元格,执行“格式单元格”命令,打开“单元格格式”对话框(如图2),在“数字”标签中的“分类”下面选中“日期”选项,再在右侧“类型”下面选中“二一年三月十四日”选项,“确定”退出,将日期设置成中文形式。注意:today()函数用于提取当前系统日期,请将系统日期一定要调整准确哟。 3、选中f1单元格,输入公式:=if(weekday(b1,2)=7,日,weekday(b1,2);选中h1单元格,输入公式:=now()。选中f1单元格,打开“单元格格式”对话框,在“数字”标签中的“分类”下面选中“特殊”选项,再在右侧“类型”下面选中“中文小写数字”选项,“确定”退出,将“星期数”设置成中文小写形式;选中h1单元格,打开“单元格格式”对话框,在“数字”标签中的“分类”下面选中“时间”选项,再在右侧“类型”下面选中一款时间格式,“确定”退出。注意:上述前面一个公式的含义是:如果(if)当前日期(b1)是星期“7”(weekday(b1,2)=7),则在f1单元格中显示“日”,否则,直接显示出星期的数值(weekday(b1,2))。上述第二个函数(now()用于提取当前系统日期和时间,也请将系统日期和时间调整准确。4、在i1、i2单元格分别输入1900、1901,然后同时选中i1、i2单元格,用“填充柄”向下拖拉至i151单元格,输入19002050年份序列。同样的方法,在j1至j12单元格中输入112月份序列。5、选中d13单元格,执行“数据有效性”命令,打开“数据有效性”对话框(如图3),按“允许”右侧的下拉按钮,选中“序列”选项,在“来源”下面的方框输入:=$i$1:$i$151,“确定”退出。同样的操作,将f15单元格数据有效性设置为“=$j$1:$j$12”序列。 注意:经过这样的设置以后,当我们选中d15(或f15)单元格时,在单元格右侧出现一个下拉按钮,按此下拉按钮,即可选择年份(或月份)数值,快速输入需要查询的年、月值。6、选中a2单元格(不一定非得是a2哟),输入公式:=if(f13=2,if(or(d13/400=int(d13/400),and(d13/4=int(d13/4),d13/100int(d13/100),29,28),if(or(f13=4,f13=6,f13=9,f13=11),30,31),用于获取查询“月份”所对应的天数(28、29、30、31)。注意:上述函数的含义是:如果查询“月份”为“2月”(f13=2)时,并且“年份”数能被400整除d13/400=int(d13/400),或者(or)“年份”能被4整除,但不能被100整除and(d13/4=int(d13/4),d13/100int(d13/100),则该月为29天(也就是我们通常所说的“闰年”),否则为28天。如果“月份”不是2月,但是“4、6、9、11”月,则该月为30天。其他月份天数为31天。7、选中b2单元格,输入公式:=if(weekday(date($d$13,$f$13,1),2)=b3,1,0)。再次选中b2单元格,用“填充柄”将上述公式复制到c2h2单元格中。注意:上述b2公式的含义是:如果“查询年月”的第1天是星期“7”(weekday(date)($d$13,$f$13,1),2)=b3)时,在该单元格显示“1”,反之显示“0”),为“查询年月”获取一个对照值,为下面制作月历做准备。上述c2h2单元条中公式的含义与b2相似。在用拖拉法复制公式时,公式“绝对引用”的单元格(加了“$”号的,如“$d$13”等)不会发生改变,而“相对引用”的单元格(没有加“$”号的,如“b3”等),则会智能化地发生变化,例如在e2单元格中,“b3”变成了“e3”,整个公式成为:=if(weekday(date($d$13,$f$13,1),2)=e3,1,0)。8、选中b6单元格,输入公式:=if(b2=1,1,0)。选中b7单元格,输入公式:=h6+1。用“填充柄”将b7单元格中的公式复制到b8、b9单元格中。分别选中b10、b11单元格,输入公式:=if(h9=a2,0,h9+1)和=if(h10=a2,0,if(h100,h10+1,0)。选中c6单元格,输入公式:=if(b60,b6+1,if(c2=1,1,0)。用“填充柄”将c6单元格中的公式复制到d6h6单元格中。选中c7单元格,输入公式:=b7+1。用“填充柄”将c7单元格中的公式复制到c8、c9单元格中。同时选中c7c9单元格,用“填充柄”将其中的公式复制到d7h9单元格中。选中c10单元格,输入公式:=if(b11=$a$2,0,if(b110,b11+1,if(c6=1,1,0)。用“填充柄”将c10单元格中的公式复制到d10h10单元格和c11单元格中。至此,整个万年历(其实没有万年,只有从19002050的151年)制作完成。下面,我们一起来将其装饰一下。9、选中相应的单元格,利用工具栏上的相应按钮,设置好字体、字号、字符颜色等。选中相应的单元格,打开“单元格格式”对话框,在“对齐”标签下,设置好单元格中文本的对齐方式(通常情况下,垂直对齐可以一次性设置为“居中”,水平“对齐”根据具体情况设置)。同时选中i列和j列,右击鼠标,选“隐藏”选项,将相应的列隐藏起来,使得界面更加友好。用同样的方法,将第2和第3行也隐藏起来。10、选中b5h11单元格区域,打开“单元格格式”对话框,进入“边框”标签,选择好“颜色、样式”,并“预置”好边框范围,然后“确定”退出,为月历加上边框。11、执行“工具选项”命令,打开“选项”对话框(如图4),在“视图”标签下(通常是默认标签),清除“零值”和“网格线”复选框中的“”号,“确定”退出,让“零值”和“网格线”不显示出来。12、将b14h14和b15h15单元格分别合并成一个单元格,并在b14和b15单元格中输入公式:=if(and(month(d1)=1,day(d1)=1),新的新气象!加油呀!,if(and(month(d1)=3,day(d1)=8),向女同胞们致敬!,if(and(month(d1)=5,day(d1)=1),劳动最光荣,if(and(month(d1)=5,day(d1)=4),青年是祖国的栋梁,if(and(month(d1)=6,day(d1)=1),原天下所有的儿童永远快乐,0)和=if(and(month(d1)=7,day(d1)=1),党的恩情永不忘,if(and(month(d1)=8,day(d1)=1),提高警惕,保卫祖国!,if(and(month(d1)=9,day(d1)=10),老师,您辛苦了!,if(and(month(d1)=10,day(d1)=1),祝我们伟大的祖国繁荣富强,0)。 设置好b14和b15单元格的字体、字号、字符颜色。注意:上述公式的含义是:如果当前日期逢到相关的节日(如“元旦”等),则在b14或b15单元格显示出相应的祝福语言(如“新的新气象!加油呀!”,参见图5)。由于if函数只能嵌套7层,而节日数量超过7个(我们这里给出了9个),因此,我们用两个单元格来显示。 13、执行“格式工作表背景”命令,打开“工作表背景”对话框(如图6),选择一张合适的图片后,按“插入”按钮,将其衬于工作表文字下面。14、在按住“ctrl”键的同时,单击d13和f13单元格,同时选中两个单元格,开“单元格格式”对话框,切换“保护”标签(如图7),清除“锁定”前面复选框中的“”号,“确定”退出。 15、执行“工具保护保护工作表”命令,打开“保护工作表”对话框(如图8),两次输入密码后,确定退出。注意:经过这样的设置后,整个工作表中除了d13和f13单元格中的内容可以改变外,其它单元格中的内容均不能改变,保证了万年历的使用可靠性。 在vb中操纵excel 一excel对象模块 application 对象 | 集合 - |-assistant |-addins(addin) |-autocomect |-oledberrors |-debug |-commandbars(commandbar) |-vbe |-dialogs(dialog) |-worksheetfunction |-recentfilds(recentfile) |-defaultweboptions |-windows(window) |-languagesettings |-workbooks(workbook) |-filesearch |-names(name) |-answerwizard |-odbcerrors 最上层的application是指整个应用程序,其中最常用到的workbooks代表活页簿集合,在其后的括号内的workbook是指一个工作簿。 在vb中要打开excel,首先要引用microsoft excel 9.0(或8.0)object lobrary。 打开的步骤是:(1)定义两个变量,数据类型指定为excel.applicationexcel.workbook. (2)激活excel应用程序。(3)打开工作簿(我们假设在当前路径下有一个工作簿students.xls)。 代码如下: option explicit public appexcel as excel.application public wbexcel as excel.workbook private sub setup_excel_object() set appexcel = createobject(excel.application) set wbexcel = appexcel.workbooks.open(app.path & students.xls) appexcel.visible = true 使对象可见 end sub 二工作表对象worksheet workbooks对象有一个集合对象工作表worksheets,,用来放工作表相关的资料。 workbooks(workbook) 对象 | 集合 - |-htmlprojcet |-publishobjects |-routingslip |-documentproperties |-areas |-worksheets |-weboptions |-names |-vbproject |-customviews |-commandbars |-pivotcaches |-windows |-styles |-charts 调用方法是声明一个工作表变量,用for-each循环方式可以读取集合对象workbooks里的所有工作表名。 代码如下: dim temp as excel.worksheet for each temp in wbexcel.worksheets wbexcel是上面代码中声明的workbook form1.combo1.additem temp.name next 三读取工作表某个选取范围的内容。 要读取工作表某个范围单元格,可先定义一个excel范围对象变量,然后使用rows或columns函数指定某行或某列的范围,范围单元格(cells)地址以目前被选取范围为基准。具体方法如下: (1)设置工作表对象变量操作哪个工作表; (2)选取工作表的某行或某列; (3)在上面的选取范围内读取某个单元格内容。 代码如下: dim tempsheet as excel.worksheet 定义excel工作表 dim temprange as excel.range 定义excel工作表范围变量 第一步:选取工作表sheet1 set tempsheet = appexcel.worksheets(sheet1) 第二步:选取第二行(以这行为第一行) set temprange = tempsheet.rows(2) 第三步:读取范围内第一行第二列的单元格 text1.text = temprange.cells(1, 2) 四其他 用temprange.find().column方法可以查找目前范围内第一行的第一个空白单元格 如何实现vb与excel的无缝连接 2003-02-17 吴刚yesky vb是常用的应用软件开发工具之一,由于vb的报表功能有限,而且一但报表格式发生变化,就得相应修改程序,给应用软件的维护工作带来极大的不便。因此有很多程序员现在已经充分利用execl的强大报表功来实现报表功能。但由于vb与excel由于分别属于不同的应用系统,如何把它们有机地结合在一起,是一个值得我们研究的课题。一、 vb读写excel表:vb本身提自动化功能可以读写excel表,其方法如下:1、在工程中引用microsoft excel类型库:从工程菜单中选择引用栏;选择microsoft excel 9.0 object library(excel2000),然后选择确定。表示在工程中要引用excel类型库。2、在通用对象的声明过程中定义excel对象:dim xlapp as excel.applicationdim xlbook as excel.workbookdim xlsheet as excel.worksheet 3、在程序中操作excel表常用命令:set xlapp = createobject(excel.application) 创建excel对象set xlbook = xlapp.workbooks.open(文件名) 打开已经存在的excel工件簿文件xlapp.visible = true 设置excel对象可见(或不可见)set xlsheet = xlbook.worksheets(表名) 设置活动工作表xlsheet.cells(row, col) =值 给单元格(row,col)赋值xlsheet.printout 打印工作表xlbook.close (true) 关闭工作簿xlapp.quit 结束excel对象set xlapp = nothing 释放xlapp对象xlbook.runautomacros (xlautoopen) 运行excel启动宏xlbook.runautomacros (xlautoclose) 运行excel关闭宏 4、在运用以上vb命令操作excel表时,除非设置excel对象不可见,否则vb程序可继续执行其它操作,也能够关闭excel,同时也可对excel进行操作。但在excel操作过程中关闭excel对象时,vb程序无法知道,如果此时使用excel对象,则vb程序会产生自动化错误。形成vb程序无法完全控制excel的状况,使得vb与excel脱节。二、 excel的宏功能:excel提供一个visual basic编辑器,打开visual basic编辑器,其中有一工程属性窗口,点击右键菜单的插入模块,则增加一个模块1,在此模块中可以运用visual basic语言编写函数和过程并称之为宏。其中,excel有两个自动宏:一个是启动宏(sub auto_open()),另一个是关闭宏(sub auto_close())。它们的特性是:当用excel打含有启动宏的工簿时,就会自动运行启动宏,同理,当关闭含有关闭宏的工作簿时就会自动运行关闭宏。但是通过vb的自动化功能来调用excel工作表时,启动宏和关闭宏不会自动运行,而需要在vb中通过命令xlbook.runautomacros (xlautoopen)和xlbook.runautomacros (xlautoclose) 来运行启动宏和关闭宏。三、 vb与excel的相互勾通:充分利用excel的启动宏和关闭宏,可以实现vb与excel的相互勾通,其方法如下:在excel的启动宏中加入一段程序,其功能是在磁盘中写入一个标志文件,同时在关闭宏中加入一段删除此标志文件的程序。vb程序在执行时通过判断此标志文件存在与否来判断excel是否打开,如果此标志文件存在,表明excel对象正在运行,应该禁止其它程序的运行。如果此标志文件不存在,表明excel对象已被用户关闭,此时如果要使用excel对象运行,必须重新创建excel对象。四、举例:1、在vb中,建立一个form,在其上放置两个命令按钮,将ommand1的caption属性改为excel,command2的caption属性改为end。然后在其中输入如下程序:dim xlapp as excel.application 定义excel类 dim xlbook as excel.workbook 定义工件簿类dim xlsheet as excel.worksheet 定义工作表类 private sub command1_click() 打开excel过程if dir(d:tempexcel.bz) = then 判断excel是否打开set xlapp = createobject(excel.application) 创建excel应用类xlapp.visible = true 设置excel可见set xlbook = xlapp.workbooks.open(d:tempbb.xls) 打开excel工作簿set xlsheet = xlbook.worksheets(1) 打开excel工作表xlsheet.activate 激活工作表xlsheet.cells(1, 1) = abc 给单元格1行驶列赋值xlbook.runautomacros (xlautoopen) 运行excel中的启动宏elsemsgbox (excel已打开) end ifend subprivate sub command2_click()if dir(d:tempexcel.bz) then 由vb关闭excel xlbook.runautomacros (xlautoclose) 执行excel关闭宏xlbook.close (true) 关闭excel工作簿xlapp.quit 关闭excelend ifset xlapp = nothing 释放excel对象endend sub 2、在盘根目录上建立一个名为temp的子目录,在temp目录下建立一个名为bb.xls的excel文件。3、在bb.xls中打开visual basic编辑器,在工程窗口中点鼠标键选择插入模块,在模块中输入入下程序存盘:sub auto_open()open d:tempexcel.bz for output as #1 写标志文件close #1end subsub auto_close()kill d:tempexcel.bz 删除标志文件end sub 4、运行vb程序,点击excel按钮可以打开excel系统,打开excel系统后,vb程序和excel分别属两个不同的应用系统,均可同时进行操作,由于系统加了判断,因此在vb程序中重复点击excel按钮时会提示excel已打开。如果在excel中关闭excel后再点excel按钮,则会重新打开excel。而无论excel打开与否,通过vb程序均可关闭excel。这样就实现了vb与excel的无缝连接。 excel制作奖金计算表2006年08月16日 03:52:06 陈秀峰 源码下载某公司规定:一个月奖金基数为300元,病假1天扣15元,事假一天扣30元,旷工一天扣60元,扣完为止。使用这个奖金计算表时,只要将员工的出勤情况记录在表中,该员工的奖金将自动计算出来,兼有考勤和计算奖金两种功能。自动统计表做好以后还可以保存成模板,以便以后使用。本文所涉及到的excel函数有: 1、countif(range,criteria) 2、month(serial_number) 3、today()注意:图中符号的含义是:b表示病假,s表示事假,g表示旷工,q表示出勤,j表示法定休息日。 1、启动excel20
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 舞蹈面试必 备:中国舞面试题目及答案全解析
- 知识题库-物业管理师考试题目及答案(填空题、单选题)
- 山西省大同四中联盟体2026届化学高一第一学期期末监测试题含解析
- 你的名字讲解版
- 天然药物化学萜类
- 湖北省襄阳市第四中学2026届化学高一上期中综合测试模拟试题含解析
- 氧气放散率讲解
- 市场营销消费者行为分析讲解
- 膝关节结核讲解
- 三级中医医院评审汇报
- 2025年(完整版)十八项核心制度培训考核试题(含答案)
- 社工的劳动合同范本(2025版)
- 2025年中国LCP料数据监测报告
- 纺织服装产业园项目建设方案
- DB44T 1597-2015 电镀水污染物排放标准
- 儿童保健工作管理办法
- 全固态高功率超快激光器:放大机制与热透镜效应的深度剖析
- KET教学课件新版
- DGTJ08-2232-2017 城市轨道交通工程技术规范
- 中职思政试题及答案
- 中小学暑期安全教育班会课件
评论
0/150
提交评论