手把手教你用EXCEL制作日历

发布时间:2021-02-09   来源:文档文库   
字号:
手把手教你用EXCEL制作日历
EXCEL制作一份万年历
今天我们介绍用Excel制作万年历的方法。这个万年历可以显示当月的月历,还可以随意查阅任何日期所属的月历,非常方便。如果你愿意,还可以让它在特殊的日子里显示不同的提醒文字,一起来试试吧!
本文所涉及到的函数有:
1AND (logical1,logical2, ...> 2DATE (year,month,day> 3DAY (serial_number>
4IF (Logical,Value_if_true,Value_if_false> 5INT (number>
6MONTH (serial_number> 7NOW (>
8OR (logical1,logical2, ...>b5E2RGbCAP
1、启动EXCEL2003,新建一个工作表,取名保存<如万年.xls),并在相应的单元格中,输入如图1所示的文本。p1EanqFDPw
1 / 25
手把手教你用EXCEL制作日历


2、同时选中B1C1D1单元格,按“格式”工具栏上的“合并及居中”按钮,将其合并成一个单元格,并输入公式:=TODAY<)。 DXDiTa9E3d
选中B1<合并后的)单元格,执行“格式→单元格”命令,打开“单元格格式”对话框<如图2),在“数字”标签中的“分类”下面选中“日期”选项,再在右侧“类型”下面选中“二○○一年三月十四日”选项,“确定”退出,将日期设置成中文形式。RTCrpUDGiT
2 / 25
手把手教你用EXCEL制作日历

注意:TODAY<)函数用于提取当前系统日期,请将系统日期一定要调整准确哟。

3、选中F1单元格,输入公式:=IF(WEEKDAY(B1,2>=7,"",WEEKDAY(B1,2>>;选中H1单元格,输入公式:=NOW<)。5PCzVD7HxA
选中F1单元格,打开“单元格格式”对话框,在“数字”标签中的“分类”下面选中“特殊”选项,再在右侧“类型”下面选中“中文小写数字”选项,“确定”退出,将“星期数”设置成中文小写形式;选中H1单元格,打开“单元格格式”对话框,在“数字”标签中的“分类”下面选中“时间”选项,再在右侧“类型”下面选中一款时间格式,“确定”退出。jLBHrnAILg
3 / 25
手把手教你用EXCEL制作日历
注意:①上述前面一个公式的含义是:如果)当前日期)是星期“7”=7),则在F1单元格中显示“日”,否则,直接显示出星期的数值)。xHAQX74J0X
②上述第二个函数))用于提取当前系统日期和时间,也请将系统日期和时间调整准确。
4、在I1I2单元格分别输入19001901,然后同时选中I1I2单元格,用“填充柄”向下拖拉至I151单元格,输入19002050年份序列。LDAYtRyKfE
同样的方法,在J1J12单元格中输入112月份序列。 5、选中D13单元格,执行“数据→有效性”命令,打开“数据有效性”对话框<如图3),按“允许”右侧的下拉按钮,选中“序列”选项,在“来源”下面的方框输入:=$I$1:$I$151,“确定”退出。Zzz6ZB2Ltk
4 / 25
手把手教你用EXCEL制作日历

同样的操作,将F15单元格数据有效性设置为“=$J$1:$J$12”序列。

注意:经过这样的设置以后,当我们选中D15<F15)单元格时,在单元格右侧出现一个下拉按钮,按此下拉按钮,即可选择年<或月份)数值,快速输入需要查询的年、月值。dvzfvkwMI1
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>>,用于获取查询“月份”所对应的天数<28293031)。rqyn14ZNXI
注意:上述函数的含义是:如果查询“月份”为“2月”400整除5 / 25
手把手教你用EXCEL制作日历
[D13/400=INT(D13/400>],或者)“年份”能被4整除,但不能100整除[AND(D13/4=INT(D13/4>,D13/100INT(D13/100>>],则该月为29<也就是我们通常所说的“闰年”),否则为28天。如果“月份”不是2月,但是“4、6911”月,则该月为30天。其他月份天数为31天。EmxvxOtOco
7、选中B2单元格,输入公式:=IF(WEEKDAY(DATE($D$13,$F$13,1>,2>=B3,1,0>。再次选中B2单元格,用“填充柄”将上述公式复制到C2H2单元格中。SixE2yXPq5
注意:①上述B2公式的含义是:如果“查询年月”的第1天是星期“7”($D$13,$F$13,1>,2>=B3)时,在该单元格显示“1”,反之显示“0”),为“查询年月”获取一个对照值,为下面制作月历做准备。6ewMyirQFL
②上述C2H2单元条中公式的含义及B2相似。
③在用拖拉法复制公式时,公式“绝对引用”的单元格<加了“$”号的,如“$D$13”等)不会发生改变,而“相对引用”的单元格<没有加“$”号的,如“B3”等),则会智能化地发生变化,例如在E2单元格中,“B3”变成了“E3”,整个公式成为:=IF(WEEKDAY(DATE($D$13,$F$13,1>,2>=E3,1,0>kavU42VRUs
6 / 25
手把手教你用EXCEL制作日历
8、选中B6单元格,输入公式:=IF(B2=1,1,0>。选中B7单元格,输入公式:=H6+1。用“填充柄”将B7单元格中的公式复制到B8B9单元格中。y6v3ALoS89
分别选中B10B11单元格,输入公式:=IF(H9>=A2,0,H9+1>=IF(H10>=A2,0,IF(H10>0,H10+1,0>>M2ub6vSTnP
选中C6单元格,输入公式:=IF(B6>0,B6+1,IF(C2=1,1,0>>用“填充柄”将C6单元格中的公式复制到D6H6单元格中。 0YujCfmUCw
选中C7单元格,输入公式:=B7+1。用“填充柄”将C7单元格中的公式复制到C8C9单元格中。同时选中C7C9单元格,用“填充柄”将其中的公式复制到D7H9单元格中。eUts8ZQVRd
选中C10单元格,输入公式:=IF(B11>=$A$2,0,IF(B11>0,B11+1,IF(C6=1,1,0>>>。用“填充柄”C10单元格中的公式复制到D10H10单元格和C11单元格中。sQsAEJkW5T
至此,整个万年历<其实没有万年,只有从19002050151年)制作完成。
下面,我们一起来将其装饰一下。
7 / 25
手把手教你用EXCEL制作日历
9、选中相应的单元格,利用工具栏上的相应按钮,设置好字体、字号、字符颜色等。
选中相应的单元格,打开“单元格格式”对话框,在“对齐”标签下,设置好单元格中文本的对齐方式<通常情况下,垂直对齐可以一次性设置为“居中”,水平“对齐”根据具体情况设置)。GMsIasNXkA
同时选中I列和J列,右击鼠标,选“隐藏”选项,将相应的列隐藏起来,使得界面更加友好。用同样的方法,将第2和第3也隐藏起来。TIrRGchYzg
10、选中B5H11单元格区域,打开“单元格格式”对话框,进入“边框”标签,选择好“颜色、样式”,并“预置”好边框范围,然后“确定”退出,为月历加上边框。7EqZcWLZNX
11、执行“工具→选项”命令,打开“选项”对话框<如图4),在“视图”标签下<通常是默认标签),清除“零值”和“网格线”复选框中的“∨”号,“确定”退出,让“零值”和“网格线”不显示出来。lzq7IGf02E
8 / 25
手把手教你用EXCEL制作日历

12、将B14H14B15H15单元格分别合并成一个单元格,并在B14B15单元格中输入公式:=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>>>> zvpgeqJ1hk
9 / 25
手把手教你用EXCEL制作日历
设置好B14B15单元格的字体、字号、字符颜色。
注意:上述公式的含义是:如果当前日期逢到相关的节日<“元旦”等),则在B14B15单元格显示出相应的祝福语言<“新的新气象!加油呀!”,参见图5)。NrpoJac3v1

由于IF函数只能嵌套7层,而节日数量超过7<我们这里给出了9个),因此,我们用两个单元格来显示。 13、执行“格式→工作表→背景”命令,打开“工作表背景”对话框<如图6),选择一张合适的图片后,按“插入”按钮,将其衬于工作表文字下10 / 25
手把手教你用EXCEL制作日历
面。1nowfTG4KI
14、在按住“Ctrl”键的同时,单击D13F13单元格,同时选中两个单元格,开“单元格格式”对话框,切换“保护”标签<7),清除“锁定”前面复选框中的“∨”号,“确定”退出。fjnFLDa5Zo
15、执行“工具→保护→保护工作表”命令,打开“保护工作表”对话框<如图8),两次输入密码后,确定退出。tfnNhnE6e5
11 / 25
手把手教你用EXCEL制作日历

注意:经过这样的设置后,整个工作表中除了D13F13单元格中的内容可以改变外,其它单元格中的内容均不能改变,保证了万年历的使用可靠性。HbmVN777sL VB中操纵Excel 一.Excel对象模块

Application
对象 | 集合 ----------------------------------
|-----Assistant |----Addins(Addin> V7l4jRB8Hs
|-----AutoComect |-----OLEDBErrors 83lcPA59W9
|-----Debug |-----CommandBars(CommandBar> mZkklkzaaP
|-----VBE |-----12 / 25
手把手教你用EXCEL制作日历
Dialogs(Dialog> AVktR43bpw
|-----WorksheetFunction |-----RecentFilds(RecentFile> ORjBnOwcEd
|-----DefaultWebOptions |-----Windows(Window> 2MiJTy0dTT
|-----LanguageSettings |-----Workbooks(Workbook> gIiSpiue7A
|-----Filesearch |------Names(name> uEh0U1Yfmh
|-----AnswerWizard |------ODBCErrors IAg9qLsgBX
ApplicationWorkbooks代表活页簿集合,在其后的括号内的Workbook是指一个工作簿。 WwghWvVhPE
VB中要打开Excel,首先要引用Microsoft Excel 9.0(8.0Object Lobrary asfpsfpi4k
<1Excel.ApplicationExcel.Workbook. ooeyYZTjj1
(2>激活Excel应用程序。<3)打开工作簿(我们假设在当前路径下有一个工作簿students.xls)。 BkeGuInkxI 代码如下: Option Explicit
13 / 25
手把手教你用EXCEL制作日历
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"> PgdO0sRlMo
appExcel.Visible = True '使对象可见 End Sub
二.工作表对象Worksheet
Workbooks对象有一个集合对象--工作表Worksheets,用来放工作表相关的资料。

Workbooks(workbook>
对象 | 集合 ------------------------
|----HTMLProjcet |----Publishobjects 3cdXwckm15
|----RoutingSlip |----DocumentProperties h8c52WOngM
|----Areas |----Worksheets |----WebOptions |----Names
|----VBProject |----CustomViews v4bdyGious
14 / 25
手把手教你用EXCEL制作日历
|----CommandBars |----PivotCaches |----Windows |----Styles |----Charts 调用方法是声明一个工作表变量,用For-Each循环方式可以读取集合对象Workbooks里的所有工作表名。 J0bm4qMpJ9 代码如下:

Dim temp As Excel.Worksheet
For Each temp In wbExcel.Worksheets 'wbExcel是上面代码中声明的Workbook XVauA9grYP
FORM1.Combo1.AddItem temp.Name Next
三.读取工作表某个选取范围的内容。

要读取工作表某个范围单元格,可先定义一个Excel范围对象变量,然后使用RowsColumns函数指定某行或某列的范围,范围单 bR9C6TJscw
<1)设置工作表对象变量操作哪个工作表; <2)选取工作表的某行或某列;

<3)在上面的选取范围内读取某个单元格内容。 代码如下:

15 / 25
手把手教你用EXCEL制作日历
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方法可以查找目前范围内第一行的第一个空白单元格

如何实现VBEXCEL的无缝连接 2003-02-17··吴刚··yesky
VB是常用的应用软件开发工具之一,由于VB的报表功能有限,而且一但报表格式发生变化,就得相应修改程序,给应用软件的维护工作带来极大的不便。因此有很多程序员现在已经充分利用EXECL的强大报表功来实现报表功能。但由于VBEXCEL由于分别属于不同的应用系统,如何把它们有机地结合在一起,是一个值得我们研究的课题。pN9LBDdtrd 一、 VB读写EXCEL表:
VB本身提自动化功能可以读写EXCEL表,其方法如下: 1、在工程中引用Microsoft Excel类型库:
16 / 25
手把手教你用EXCEL制作日历
"工程"菜单中选择"引用"栏;选择Microsoft Excel 9.0 Object Library),然后选择"确定"。表示在工程中要引用EXCEL类型库。DJ8T7nHuGT
2、在通用对象的声明过程中定义EXCEL对象: Dim xlApp As Excel.Application Dim xlBook As Excel.WorkBook Dim xlSheet As Excel.Worksheet 3、在程序中操作EXCEL表常用命令:
Set xlApp = CreateObject("Excel.Application"> '创建EXCELQF81D7bvUA
Set xlBook = xlApp.Workbooks.Open("文件名"> '打开已经存在的EXCEL工件簿文件4B7a9QFw9h
xlApp.Visible = True '设置EXCEL对象可见<或不可见) Set xlSheet = xlBook.Worksheets("表名"> '设置活动工作表 xlSheet.Cells(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对象17 / 25
手把手教你用EXCEL制作日历
不可见,否则VB程序可继续执行其它操作,也能够关闭EXCEL,同时也可对EXCEL进行操作。但在EXCEL操作过程中关闭EXCEL对象时,VB程序无法知道,如果此时使用EXCEL对象,则VB程序会产生自动化错误。形成VB程序无法完全控制EXCEL的状况,使得VBEXCEL脱节。ix6iFA8xoX 二、 EXCEL的宏功能:
EXCEL提供一个Visual Basic编辑器,打开Visual Basic辑器,其中有一工程属性窗口,点击右键菜单的"插入模块",则增加一个"模块1",在此模块中可以运用Visual Basic语言编写函数和过程并称之为宏。其中,EXCEL有两个自动宏:一个是启动宏),另一个是关闭宏)。它们的特性是:当用EXCEL打含有启动宏的工簿时,就会自动运行启动宏,同理,当关闭含有关闭宏的工作簿时就会自动运行关闭宏。但是通过VB的自动化功能来调用EXCEL工作表时,启动宏和关闭宏不VBxlBook.RunAutoMacros (xlAutoOpen>xlBook.RunAutoMacros (xlAutoClose> 来运行启动宏和关闭宏。wt6qbkCyDE
三、 VBEXCEL的相互勾通:
充分利用EXCEL的启动宏和关闭宏,可以实现VBEXCEL的相互勾通,其方法如下:
EXCEL的启动宏中加入一段程序,其功能是在磁盘中写入一个标志文件,同时在关闭宏中加入一段删除此标志文件的程序。VB18 / 25
手把手教你用EXCEL制作日历
程序在执行时通过判断此标志文件存在及否来判断EXCEL是否打开,如果此标志文件存在,表明EXCEL对象正在运行,应该禁止其它程序的运行。如果此标志文件不存在,表明EXCEL对象已被用户关闭,此时如果要使用EXCEL对象运行,必须重新创建EXCEL象。Kp5zH46zRk 四、举例:
1、在VB中,建立一个FORM,在其上放置两个命令按钮,将Command1Caption属性改为EXCELCommand2Caption属性改End。然后在其中输入如下程序:Yl4HdOAA61 Dim xlApp As Excel.Application '定义EXCEL Dim xlBook As Excel.Workbook '定义工件簿类 Dim xlsheet As Excel.Worksheet '定义工作表类 Private Sub Command1_Click(> '打开EXCEL过程
If Dir("D:\temp\excel.bz"> = "" Then '判断EXCEL是否打开 Set xlApp = CreateObject("Excel.Application"> 'EXCEL应用类ch4PJx4BlI
xlApp.Visible = True '设置EXCEL可见
Set xlBook = xlApp.Workbooks.Open("D:\temp\bb.xls"> 'EXCEL工作簿qd3YfhxCzo
Set xlsheet = xlBook.Worksheets(1> '打开EXCEL工作表 xlsheet.Activate '激活工作表
xlsheet.Cells(1, 1> = "abc" '给单元格1行驶列赋值
19 / 25
手把手教你用EXCEL制作日历
xlBook.RunAutoMacros (xlAutoOpen> 运行EXCEL中的启动宏 Else
MsgBox ("EXCEL已打开"> End If End Sub
Private Sub Command2_Click(>
If Dir("D:\temp\excel.bz"> "" Then 'VB关闭EXCEL xlBook.RunAutoMacros (xlAutoClose> '执行EXCEL关闭宏 xlBook.Close (True> '关闭EXCEL工作簿 xlApp.Quit '关闭EXCEL End If
Set xlApp = Nothing '释放EXCEL对象 End End Sub
2、在D盘根目录上建立一个名为Temp的子目录,在Temp目录下建立一个名为"bb.xls"EXCEL文件。E836L11DO5
3、在"bb.xls"中打开Visual Basic编辑器,在工程窗口中点鼠标键选择插入模块,在模块中输入入下程序存盘:S42ehLvE3M Sub auto_open(>
Open "d:\temp\excel.bz" For Output As #1 '写标志文件 Close #1 End Sub
20 / 25


手把手教你用EXCEL制作日历
Sub auto_close(>
Kill "d:\temp\excel.bz" '删除标志文件 End Sub
4、运行VB程序,点击EXCEL按钮可以打开EXCEL系统,打开EXCEL系统后,VB程序和EXCEL分别属两个不同的应用系统,均可同时进行操作,由于系统加了判断,因此在VB程序中重复点击EXCEL按钮时会提示EXCEL已打开。如果在EXCEL中关闭EXCEL再点EXCEL按钮,则会重新打开EXCEL。而无论EXCEL打开及否,通过VB程序均可关闭EXCEL。这样就实现了VBEXCEL的无缝连接。501nNvZFis
Excel制作奖金计算表
http://tech.ddvip.com20060816 03:52:06 陈秀峰

源码下载
某公司规定:一个月奖金基数为300元,病假1天扣15元,事假一天扣30元,旷工一天扣60元,扣完为止。使用这个奖金计算表时,只要将员工的出勤情况记录在表中,该员工的奖金将自动计算出来,兼有考勤和计算奖金两种功能。自动统计表做好以后还可以保存成模板,以便以后使用。jW1viftGw9
本文所涉及到的Excel函数有: 1COUNTIF(Range,Criteria>
21 / 25
手把手教你用EXCEL制作日历
2MONTH(serial_number>xS0DOYWHLP 3TODAY(>

注意:图中符号的含义是:B表示病假,S表示事假,G表示旷工,Q表示出勤,J表示法定休息日。

1、启动Excel2003,按照图1所示的样式,制作一张二维表格,并填入相关文本。

2、将A1BM1单元格合并成一个单元格后,输入表格标题<“晓风公司考勤及奖金表”),并设置好字体、字号等。 LOZMkIqI0w
3、将C2D2单元格合并后,输入公式:=MONTH(TODAY(>>&"",用于显示出当前的月份。 ZKZUQsUJed
注意:在上述单元格中直接输入月份数值也是可行的。

22 / 25
手把手教你用EXCEL制作日历
4、选中BM4单元格,输入公式:=IF(300-COUNTIF(C4:BL4,"B">*7.5-COUNTIF(C4:BL4,"S">*15-COUNTIF(C4:BL4,"G">*30>0,300-COUNTIF(C4:BL4,"B">*7.5-COUNTIF(C4:BL4,"S">*15-COUNTIF(C4:BL4,"G">*30,0>,确认,计算出第一位员工的当月奖金额。 dGY2mcoKtT
注意:上述公式的含义是:用“COUNTIF(C4:BL4,"B">、COUNTIF(C4:BL4,"S">、COUNTIF(C4:BL4,"G">”分别用于统计每位员工的病假、事假、旷工的次数,再分别乘以“7.5、15、30”<每“半天”为一次)计算出所要扣去的奖励额,再用基数“300”减去上述扣去的金额。如果)差大于“0”,则显示差<即员工的奖金额),否则显示“0”<扣完为止)。rCYbSWRLIA
5、再次选中BM4单元格,用“填充柄”将上述公式复制到下面的单元格中,用于计算其它员工的当月奖励额。

注意:具体复制的数量,请根据员工的实际数目确定。
6、清空表格中所填写的数据,执行“文件→保存”命令,打开“另存为”对话框<如图2),按“保存类型”右边的下拉按钮,选中“模板<*.xlt)”选项,在文件名方框中输入一名称<如“奖金表.xlt”),单击“保存”按钮,将制作好的表格文档保存为模板。FyXjoFlMWh
23 / 25
手把手教你用EXCEL制作日历

7、以后,每个月第一天,启动Excel,执行“文件→新建”命令,展开“新建工作簿”任务窗格<如图3)。TuWrUpPObX


点击其中的“本机上的模板”选项,打开“模板”对话框<如图24 / 25
手把手教你用EXCEL制作日历
4),选中“奖金表”模板文件,单击“确定”按钮即可新建一个空的“奖金表1”工作簿文档。7qWAq9jPqE


选中C2单元格<即保存月份的单元格),将鼠标移到编辑栏中,然后按一下F9功能键,将公式<=MONTH(TODAY(>>&"")转换为具体的值<如“12月”),最后将文档保存一下。llVIWTNQFk 8、以后就可以用这个计算表逐日对员工进行考勤,到了月底就可以自动计算出奖金数据了。

申明:
所有资料为本人收集整理,仅限个人学习使用,勿做商业用途。

25 / 25

本文来源:https://www.2haoxitong.net/k/doc/d41ec81a260c844769eae009581b6bd97e19bc14.html

《手把手教你用EXCEL制作日历.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式