如何用EXCEL表格制作日历
LT
注意: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单元格,输入1900—2050年份序列。
同样的方法,在J1至J12单元格中输入1—12
月份序列。
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/100<>INT(D13/100))),29
,28),IF(OR(F13=4,F13=6,F13=9,F13=11),30,31))萝卜丝怎么炒好吃
,用于获取查询“月份”所对应的天数(2综合素质测评 8、29、
30、31)。
注意:上述函数的含义是:如果查询“月份”
为“2月”(F13=2)时,并且“年份”数能被400
整除[D13/400=INT(D13/400)],或者(OR)“年
份”能被4整除,但不能被100整除
[AND(D13/4=INT(D13/4),D13/100<>INT(D13/1
00))],则该月为29天(也就是我们通常所说的
“闰年”),否则为28天。如果“月份”不是2月,
但是“4、6、9、11”月,则该月为30天。其他月
份天数为31天。
7、选中B2单元格,输入公式:
=IF(WEEKDAY(DATE($D$13,$F$13,1),2)=B3,
1,0)。再次选中B2单元格,用“填充柄”将上述
公式复制到C2—H2单元格中。
注意:①上述B2公式的含义是:如果“查询
年月”的第1天是星期“7”
(WEEKDAY(DATE)($D$13,$F$13,1),2)=B3)
时,在该单元格显示“1”,反之显示“0”),为“查
询年月”获取一个对照值,为下面制作月历做准
备。
②上述C2—H2单元条中公式的含义与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(H10>0,H10+1,0))。
选中C6单元格,输入公式:
=IF(B6>0,B6+1,IF(C2=1,1,0))。用“填充柄”将C6
单元格中的公式复制到D6—H6单元格中。
选中C7单元格,输入公式:=B7+1。用“填
充柄”将C7单元格中的公式复制到C8、C9单元
格中。同时选中C7—C9单元格,用“填充柄”将
其中的公式复制到D7—H9单元格中。
选中C10单元格,输入公式:
=IF(B11>=$A$2,0,IF(B11>0,B11+1,IF(C6=1,1,0)
))。用“填充柄”将C10单元格中的公式复制到
D10—H10单元格和C11单元格中。
至此,整个万年历(其实没有万年,只有从
1900—2050的151年)制作完成。
下面,我们一起来将其装饰一下。
9、选中相应的单元格,利用工具栏上的相应
按钮,设置好字体、字号、字符颜色等。
选中相应的单元格,打开“单元格格式”对话
框,在“对齐”标签下,设置好单元格中文本的对
齐方式(通常情况下,垂直对齐可以一次性设置
为“居中”,水平“对齐”根据具体情况设置)。
同时选中I列和J列,右击鼠标,选“隐藏”
选项,将相应的列隐藏起来,使得界面更加友好。
用同样的方法,将第2和第3行也隐藏起来。
10、选中B5—H11单元格区域,打开“单元格
格式”对话框,进入“边框”标签,选择好“颜色、
样式”,并“预置”好边框范围,然后“确定”退出,
为月历加上边框。
11、执行“工具→选项”命令,打开“选项”对话
框(如图4),在“视图”标签下(通常是默认标
签),清除“零值”和“网格线”复选框中的“∨”
号,“确定”退出,让“零值”和“网格线”不显示出
来。
12、将B14—H14和B15—H15单元格分别合
并成一个单元格,并在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)
|-----Filearch
|------Names(name)
|-----AnswerWizard
|------ODBCErrors
最上层的Application是指整个应用程序,其中
最常用到的Workbooks代表活页簿集合,在其
后的括号内的Workbook是指一个工作簿。
在VB中要打开Excel,首先要引用Microsoft
Excel9.0(或8.0)ObjectLobrary。
打开的步骤是:(1)定义两个变量,数据类型指
定为ation.ok.
(2)激活Excel应用程序。(3)打开工作簿(我们
假设在当前路径下有一个工作簿)。
代码如下:
OptionExplicit
ation
ok
PrivateSubSetup_Excel_object()
SetappExcel=
CreateObject("ation")
SetwbExcel=
(&
"")
e=True'使对象可见
EndSub
二.工作表对象Worksheet
Workbooks对象有一个集合对象--工
作表Worksheets,,用来放工作表相关的资料。
Workbooks(workbook)
对象|
集合
------------------------
|----HTMLProjcet
|----Publishobjects
|----RoutingSlip
|----DocumentProperties
|----Areas
|----Worksheets
|----WebOptions
|----Names
|----VBProject
|----CustomViews
|----CommandBars
|----PivotCaches
|----Windows
|----Styles
|----Charts
调用方法是声明一个工作水瓶座性格 表变量,用
For-Each循环方式可以读取集合对象
Workbooks里的所有工作表名。
代码如下:
eet
eets
'wbExcel是上面代码中声明的Workbook
Next
三.读取工作表某个选取范围的内容。
要读取工作表某个范围单元格,可先定义一个
Excel范围对象变量,然后使用Rows或Columns
函数指定某行或某列的范围,范围单元格(Cells)
地址以目前被选取范围为基准。具体方法如下:
(1)设置工作表对象变量操作哪个工作表;
(2)选取工作表的某行或某列;
(3)在上面的选取范围内读取某个单元格内容。
代码如下:
eet'定义
Excel工作表
'定义Excel
工作表范围变量
'第一步:选取工作表Sheet1
SetTempsheet=
eets("sheet1")
'第二步:选取第二行(以这行为第一行)
SetTempRange=(2)
'第三步:读取范围内第一行.第二列的单元
格
=(1,2)
四.其他
用("").Column方法可以
查找目前范围内第一行的第一个空白单元格
如何实现VB与EXCEL的无缝连接
2003-02-17吴刚yesky
VB是常用的应用软件开发工具之一,由于
VB的报表功能有限,而且一但报表格式发生变
化,就得相应修改程序,给应用软件的维护工作
带来极大的不便。因此有很多程序员现在已经充
分利用EXECL的强大报表功来实现报表功能。
但由于VB与EXCEL由于分别属于不同的应用
系统,如何把它们有机地结合在一起,是一个值
得我们研究的课题。
一、VB读写EXCEL表:
VB本身提自动化功能可以读写EXCEL
表,其方法如下:
1、在工程中引用MicrosoftExcel类型库:
从"工程"菜单中选择"引用"栏;选择
MicrosoftExcel9.0ObjectLibrary
(EXCEL2000),然后选择"确定"。表示在工程
中要引用EXCEL类型库。
2、在通用对象的声明过程中定义EXCEL
对象:
ation
ok
eet
3、在程序中操作EXCEL表常用命令:
SetxlApp=CreateObject("ation")
'创建EXCEL对象
SetxlBook=("文件名")
'打开已经存在的EXCEL工件簿文件
e=True'设置EXCEL对象可见(或
不可见)
SetxlSheet=eets("表名")'设置
活动工作表
(row,col)=值'给单元格(row,col)
赋值
ut'打印工作表
(True)'关闭工作簿
'结板载是什么意思 束EXCEL对象
SetxlApp=Nothing'释放xlApp对象
oMacros(xlAutoOpen)'运行
EXCEL启动宏
oMacros(xlAutoClo)'运行
EXCEL关闭宏
4、在运用以上VB命令操作EXCEL表时,
除非设置EXCEL对象不可见,否则VB程序可
继续执行其它操作,也能够关行书欣赏 闭EXCEL,同时
也可对EXCEL进行操作。但在EXCEL操作过
程中关闭EXCEL对象时,VB程序无法知道,
如果此时使用EXCEL对象,则VB程序会产生
自动化错误。形成VB程序无法完全控制
EXCEL的状况,使得VB与EXCEL脱节。
二、EXCEL的宏功能:
EXCEL提供一个VisualBasic编辑器,打
开VisualBasic编辑器,其中有一工程属性窗口,
点击右键菜单的"插入模块",则增加一个"模块
1",在此模块中可以运用VisualBasic语言编写
函数和过程并称之为宏。其中,EXCEL有两个
自动宏:一个是启动宏(SubAuto_Open()),另
一个是关闭宏(SubAuto_Clo())。它们的特性
是:当用EXCEL打含有启动宏的工簿时,就会
自动运行启动宏,同理,当关闭含有关闭宏的工
作簿时就会自动运行关闭宏。但是通过VB的自
动化功能来调用EXCEL工作表时,启动宏和关
闭宏不会自动运行,而需要在VB中通过命令
oMacros(xlAutoOpen)和
oMacros(xlAutoClo)来运行
启动宏和关闭宏。
三、VB与EXCEL的相互勾通:
充分利用EXCEL的启动宏和关闭宏,可以
实现VB与EXCEL的相互勾通,其方法如下:
在EXCEL的启动宏中加入一段程序,其功
能是在磁盘中写入一个标志文件,同时在关闭宏
中加入一段删除此标志文件的程序。VB程序在
执行时通过判断此标志文件存在与否来判断
EXCEL是否打开,如果此标志文件存在,表明
EXCEL对象正在运行,应该禁止其它程序的运
行。如果此标志文件不存在,表明EXCEL对象
已被用户关闭,此时如果要使用EXCEL对象运
行,必须重新创建EXCEL对象。
四、举例:
1、在VB中,建立一个FORM,在其上放
置两个命令按钮,将Command1的Caption属
性改为EXCEL,Command2的Caption属性改
为End。然后在其中输入如下程序:
ation'定义EXCEL
类
ok'定义工件簿类
eet'定义工作表类
PrivateSubCommand1_Click()'打开EXCEL
过程
IfDir("D:")=""Then'判断
EXCEL是否打开
SetxlApp=
CreateObject("ation")'创建
EXCEL应用类
e=True'设置EXCEL可见
SetxlBook=
("D:")'打
开EXCEL工作簿
Setxlsheet=eets(1)'打开
EXCEL工作表
te'激活工作表
(1,1)="abc"'给单元格1行驶
列赋值
oMacros(xlAutoOpen)运
行EXCEL中的启动宏
El
MsgBox("EXCEL已打开")
EndIf
EndSub
PrivateSubCommand2_Click()
IfDir("D:")<>""Then'由VB
关闭EXCEL
oMacros(xlAutoClo)'执
行EXCEL关闭宏
(True)'关闭EXCEL工作簿
'关闭EXCEL
EndIf
SetxlApp=Nothing'释放EXCEL对象
End
EndSub
2、在D盘根目录上建立一个名为Temp的
子目录,在Temp目录下建立一个名为""
的EXCEL文件。
3、在""中打开VisualBasic编辑器,
在工程窗口中点鼠标键选择插入模块,在模块中
输入入下程序存盘:
Subauto_open()
Open"d:"ForOutputAs#1'
写标志文件
Clo#1
EndSub
Subauto_clo()
Kill"d:"'删除标醪糟的吃法 志文件
EndSub
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(rial_number)
3、TODAY()
注意:图中符号的含义是:B表示病假,S表
示事假,G表示旷工,Q表示出勤,J表示法定
休息日。
1、启动Excel2003,按照图1所示的样式,
制作一张二维表格,并填入相关文本。
2、将A1至BM1单元格合并成一个单元格后,
输入表格标题(如“晓风公司考勤及奖金表”),
并设置好字体、字号等。
3、将C2和D2单元格合并后,输入公式:
=MONTH(TODAY())&"月",用于显示出当前
的月份。
注意:在上述单元格中直接输入月份数值也
是可行的。
4、选中BM4单元格,输入公式:
=IF(300-COUNTIF(C4:BL4,"B")*7.5-COUNTI
F(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),确认,计算出第一位员工的当月奖金额。
注意:上述公式的含义是:用
“COUNTIF(C4:BL4,"B")、
COUNTIF(C4:BL4,"S")、
COUNTIF(C4:BL4,"G")”分别用于统计每位员
工的病假、事假、旷工的次数,再分别乘以“7.5、
15、30”(每“半天”为一次)计算出所要扣去的
奖励额,再用基数“300”减去上述扣去的金额。
如果(IF)差大于“0”,则显示差(即员工的奖
金额),否则显示“0”(扣完为止)。
5、再次选中BM4单元格,用“填充柄”将上
述公式复制到下面的单元格中,用于计算其它员
工的当月奖励额。
注意:具体复制的数量,请根据员工的实际
数目确定。
6、清空表格中所填写的数据,执行“文件→
保存”命令,打开“另存为”对话框(如图2),
按“保存类型”右边的下拉按钮,选中“模板
(*.xlt)”选项,在文件名方框中输入一名称(如
“奖金表.xlt”),单击“保存”按钮,将制作好的
表格文档保存为模板。
7、以后,每个月第一天,启动Excel,执行“文
件→新建”命令,展开“新建工作簿”任务窗格(如
图3)。
点击其中的“本机上的模板”选项,打开“模
板”对话框(如图4),选中“奖金表”模板文件,
单击“确定”按钮即可新建一个空的“奖金表1”工
作簿文档。
选中C2单元格(即保存月份的单元格),
将鼠标移到编辑栏中,然后按一下F9功能键,
将公式(=MONTH(TODAY())&"月")转换为
具体的值(如“12月”),最后将文档保存一下。
8、以后就可以用这个计算表逐日对员工进行考
勤,到了月底就可以自动计算出奖金数据了。
本文发布于:2023-03-19 21:56:28,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/1679234190314542.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:excel日历.doc
本文 PDF 下载地址:excel日历.pdf
留言与评论(共有 0 条评论) |