今天我们介绍用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单元格,输入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)),用于获取查询“月份”所对应的天数(28、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/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单元格,用“填充柄”将上述公式复制到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)
|-----Filesearch |------Names(name)
|-----AnswerWizard |------ODBCErrors
最上层的Application是指整个应用程序,其中最常用到的Workbooks代表活页簿集合,在其后的括号内的Workbook是指一个工作簿。
在VB中要打开Excel,首先要引用Microsoft Excel 9.0(或8.0)Object Lobrary。
打开的步骤是:(1)定义两个变量,数据类型指定为Excel.Application.Excel.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 https://www.sodocs.net/doc/f39229451.html,bo1.AddItem https://www.sodocs.net/doc/f39229451.html,
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.Application
Dim xlBook As Excel.WorkBook
Dim 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,在其上放置两个命令按钮,将Command1的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:\temp\excel.bz") = "" Then '判断EXCEL是否打开
Set xlApp = CreateObject("Excel.Application") '创建EXCEL应用类
xlApp.Visible = True '设置EXCEL可见
Set xlBook = xlApp.Workbooks.Open("D:\temp\bb.xls") '打开EXCEL工作簿
Set xlsheet = xlBook.Worksheets(1) '打开EXCEL工作表
xlsheet.Activate '激活工作表
xlsheet.Cells(1, 1) = "abc" '给单元格1行驶列赋值
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文件。
3、在"bb.xls"中打开Visual Basic编辑器,在工程窗口中点鼠标键选择插入模块,在模块中输入入下程序存盘:
Sub auto_open()
Open "d:\temp\excel.bz" For Output As #1 '写标志文件
Close #1
End Sub
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。这样就实现了VB与EXCEL的无缝连接。
Excel制作奖金计算表
https://www.sodocs.net/doc/f39229451.html,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、启动Excel2003,按照图1所示的样式,制作一张二维表格,并填入相关文本。
2、将A1至BM1单元格合并成一个单元格后,输入表格标题(如“晓风公司考勤及奖金表”),并设置好字体、字号等。
3、将C2和D2单元格合并后,输入公式:=MONTH(TODAY())&"月",用于显示出当前的月份。
注意:在上述单元格中直接输入月份数值也是可行的。
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),确认,计算出第一位员工的当月奖金额。
注意:上述公式的含义是:用“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、以后就可以用这个计算表逐日对员工进行考勤,到了月底就可以自动计算出奖金数据了。
[文章导读] 这个万年历可以显示当月的月历,还可以随意查阅任何日期所属的月历,非常方便…… 今天我们介绍用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单元格,输入1900—2050年份序列。 同样的方法,在J1至J12单元格中输入1—12月份序列。 5、选中D13单元格,执行“数据→有效性”命令,打开“数据有效性”对话框(如图3),按“允许”右侧的下拉按钮,选中“序列”选项,在“来源”下面的方框输入: =$I$1:$I$151,“确定”退出。
excel表格制作日历 2、同时选中B1、C1、D1单元格,按“格式工具栏上的“合并及居中按钮,将其合并成一个单元格,并输入公式:=TODAY()。 选中B1(合并后的)单元格,执行“格式→单元格命令,打开“单元格格式对话框,在“数字标签中的“分类下面选中“日期选项,再在右侧“类型下面选中“二○○一年三月十四日选项,“确定退出,将日期设置成中文形式。 注意: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/100I NT(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天。
今天我们介绍用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单元格,输入1900—2050年份序列。 同样的方法,在J1至J12单元格中输入1—12月份序列。 5、选中D13单元格,执行“数据→有效性”命令,打开“数据有效性”对话框(如图3),按“允许”右侧的下拉按钮,选中“序列”选项,在“来源”下面的方框输入:=$I$1:$I$151,“确定”退出。
E x c e l日历控件教程详细 Revised by BLUE on the afternoon of December 12,2020.
1.Alt+F11 按下显示代码窗口后,再松开Alt+F11. 2.然后按F7 ,调出VBA 窗口。 3.粘贴以下代码. Private Sub Calendar1_Click() Dim MyDay As Date ActiveCell = Mydate = 'MsgBox Mydate = 0 End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) If = 1 Or = 1 And > 0 Then If IsDate(Target) Then = Target Else End If = -1 = + Else = 0 End If End Sub 4.打开文件→保存book1(S) 5.打开视图→对象窗口 6.打开插入→对象窗口 7.找到日历控件或,按确定退出。 8.单击第一列(A列)中的任一单元格,选择日历中的需要的日期即可。备注: 要改变日期输入位置,可按以下方法调整代码,找到下面的代码行(此代码行的意思是在A列(第1列)中添加日历。 If = 1 Or = 1 And > 0 Then 然后根据以下的方法覆盖粘贴此行代码
1.以下这一句就是 B3:C5区域调用日期控件. If = 2 And > 2 And < 6 Or = 3 And > 2 And < 6 Then 2.这句是说在第 2列和第 3列调用日期控件. If = 2 Or = 3 And > 0 Then 3.这句是说在C2:C50调用日期控件. If = 3 And > 1 And < 51 Then
以前很多人喜欢在办公桌上放一本台历,方便查询日期,现在电脑已经普及了,大家都喜欢从电脑上查看日历,又方便又不占地方。 用编程的方法可以制做电子日历,但会编程的人不多。如今EXCEL电子表格的普及率很高,由于它强大的数据处理能力,被很多人当做必不可少的办公工具。 在EXCEL中有很多时间函数,通过这些函数可以制做一款简单实用的日历牌。 先看一下做好的样式: 在这个日历牌的上面左右两个微调按钮,可以通过它们调整想要显示的年月。 下面就介绍制做过程 1、选画边框 其中C2与D2单元格是合并单元格,用于显示年份。由于年份是四位数字,所以要占用两个单元格。 其中的E10:G10也是合并单元格,这是为了显示“今天”的日期,包含了年月日三个内容,所以要占三个单元格。 2、填入内容 这些内容不需要公式,直接手工输入,根据自己的喜好设置字体、字号、颜色。 注意年份输入在C2单元格,月份输入在F2单元格,这两个位置会被下面的公式所引用。3、日历公式 这是关键一步,要输入公式了,公式的区域在B4:H9,由于第一个单元格是B4单元格,所以公式中要对它进行“绝对引用”。 可能很多人都不相信,这个区域中的公式都是一样的,虽然B4:H9区域共有42个单元格,但都使用了完全相同的公式,只要在B4单元格输入一个公式,然后通过拖动复制的方式就可以完成所有公式的输入。 公式 =IF(OR(((ROW()-ROW($B$4))*7+(COLUMN()-COLUMN($B$4)-WEEKDAY(DATE($C$2,$F$2,1))+2 ))>DAY(DATE($C$2,$F$2+1,1)-1),((ROW()-ROW($B$4))*7+(COLUMN()-COLUMN($B$4)-WEEKD AY(DATE($C$2,$F$2,1))+2))<1),"",((ROW()-ROW($B$4))*7+(COLUMN()-COLUMN($B$4)-WEE KDAY(DATE($C$2,$F$2,1))+2))) 公式有点长,分析起来感觉有些费力,我们试着对它进行“简化”。 可以看到公式中有一部份内容重复出现了三次,即 “((ROW()-ROW($B$4))*7+(COLUMN()-COLUMN($B$4)-WEEKDAY(DATE($C$2,$F$2,1))+2))”,为了方便叙述,给它起个名字叫“号”,也就是几月几号的意思。 还有一小段“DAY(DATE($C$2,$F$2+1,1)-1)”,我们给它起名为“最后一天”,因为它是计算日历牌中,当月最后一天的号数,也可以理解为这个月有几天。 然后把“号”与“最后一天”代入公式看一下: 公式就变成=IF(OR((号>最后一天),(号<1)),"",号) 这样是不是简单很多了,也容易理解了。 这就是一个常见的IF判断公式,在条件部份使用了OR函数进行逻辑“或”运算,只要“(号>最后一天),(号<1)”两部份中,任一部份为“真”,就使条件成立。 提示:这只是为了分析方便而做的“简化”,实际使用时还要使用原公式的。 提示:对所有长公式都可以用这种方法“简化”,然后对每一部份逐一分析理解。 首先这是一个由IF函数构成的判断公式,大家都知道IF函数有三个参数,第一个参数是“条件”,第二个参数是“条件”为“真”是执行的部份,第三个参数是“条件”为“假”时执行的部份,一般的使用格式为 if(条件,真,假) 公式的含义是:如果当前单元格中显示的“号”大于当前月的“最后一天”或者小于“1”,
excel制作日历 以前很多人喜欢在办公桌上放一本台历,方便查询日期,现在电脑已经普及了,大家都喜欢从电脑上查看日历,又方便又不占地方。 用编程的方法可以制做电子日历,但会编程的人不多。如今EXCEL电子表格的普及率很高,由于它强大的数据处理能力,被很多人当做必不可少的办公工具。 在EXCEL中有很多时间函数,通过这些函数可以制做一款简单实用的日历牌。先看一下做好的样式: 在这个日历牌的上面左右两个微调按钮,可以通过它们调整想要显示的年月。下面就介绍制做过程 1、选画边框 其中C2与D2单元格是合并单元格,用于显示年份。由于年份是四位数字,所以要占用两个单元格。 其中的E10:G10也是合并单元格,这是为了显示“今天”的日期,包含了年月日三个内容,所以要占三个单元格。 2、填入内容 这些内容不需要公式,直接手工输入,根据自己的喜好设置字体、字号、颜色。注意年份输入在C2单元格,月份输入在F2单元格,这两个位置会被下面的公式所引用。 3、日历公式 这是关键一步,要输入公式了,公式的区域在B4:H9,由于第一个单元格是B4单元格,所以公式中要对它进行“绝对引用”。 可能很多人都不相信,这个区域中的公式都是一样的,虽然B4:H9区域共有42个单元格,但都使用了完全相同的公式,只要在B4单元格输入一个公式,然后通过拖动复制的方式就可以完成所有公式的输入。
公式 =IF(OR(((ROW()-ROW($B$4))*7+(COLUMN()-COLUMN($B$4)- WEEKDAY(DATE($C$2,$F$2,1))+2 ))>DAY(DATE($C$2,$F$2+1,1)-1),((ROW()-ROW($B$4))*7+(COLUMN()-COLUMN($B$4)-WEEKD AY(DATE($C$2,$F$2,1))+2))<1),"",((ROW()-ROW($B$4))*7+(COLUMN()-COLUMN($B$4)-WEE KDAY(DATE($C$2,$F$2,1))+2))) 公式有点长,分析起来感觉有些费力,我们试着对它进行“简化”。 可以看到公式中有一部份内容重复出现了三次,即 “((ROW()-ROW($B$4))*7+(COLUMN()-COLUMN($B$4)- WEEKDAY(DATE($C$2,$F$2,1))+2))”, 为了方便叙述,给它起个名字叫“号”,也就是几月几号的意思。 还有一小段“DAY(DATE($C$2,$F$2+1,1)-1)”,我们给它起名为“最后一天”,因为它是计算日历牌中,当月最后一天的号数,也可以理解为这个月有几天。 然后把“号”与“最后一天”代入公式看一下: 公式就变成=IF(OR((号>最后一天),(号<1)),"",号) 这样是不是简单很多了,也容易理解了。 这就是一个常见的IF判断公式,在条件部份使用了OR函数进行逻辑“或”运算,只要“(号>最后一天),(号<1)”两部份中,任一部份为“真”,就使条件成立。 提示:这只是为了分析方便而做的“简化”,实际使用时还要使用原公式的。提示:对所有长公式都可以用这种方法“简化”,然后对每一部份逐一分析理解。
竭诚为您提供优质文档/双击可除日历工作计划表excel怎么做 篇一:如何用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、启动exceL20XX,新建一个工作表,取名保存(如万年历.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单元格中显示“日”,否
用EXCEL做日历牌(公历) 2011-08-05 11:32 以前很多人喜欢在办公桌上放一本台历,方便查询日期,现在电脑已经普及了,大家都喜欢从电脑上查看日历,又方便又不占地方用编程的方法可以制做电子日历,但会编程的人不多。如今EXCEL电子表格的普及率很高,由于它强大的数据处理能力,被很多在EXCEL中有很多时间函数,通过这些函数可以制做一款简单实用的日历牌。 先看一下做好的样式: 在这个日历牌的上面左右两个微调按钮,可以通过它们调整想要显示的年月。 下面就介绍制做过程 1、选画边框 其中C2与D2单元格是合并单元格,用于显示年份。由于年份是四位数字,所以要占用两个单元格。 其中的E10:G10也是合并单元格,这是为了显示“今天”的日期,包含了年月日三个内容,所以要占三个单元格。 2、填入内容 这些内容不需要公式,直接手工输入,根据自己的喜好设置字体、字号、颜色。 注意年份输入在C2单元格,月份输入在F2单元格,这两个位置会被下面的公式所引用。 3、日历公式 这是关键一步,要输入公式了,公式的区域在B4:H9,由于第一个单元格是B4单元格,所以公式中要对它进行“绝对引用”。 可能很多人都不相信,这个区域中的公式都是一样的,虽然B4:H9区域共有42个单元格,但都使用了完全相同的公式,只要在B 公 =IF(OR(((ROW()-ROW($B$4))*7+(COLUMN()-COLUMN($B$4)-WEEKDAY(DATE($C$2,$F$2,1))+2))>DAY(DATE($C$2,$F$2+1,1)-1 公式有点长,分析起来感觉有些费力,我们试着对它进行“简化”。 可以看到公式中有一部份内容重复出现了三次,即“((ROW()-ROW($B$4))*7+(COLUMN()-COLUMN($B$4)-WEEKDAY(DATE($C$2还有一小段“DAY(DA TE($C$2,$F$2+1,1)-1)”,我们给它起名为“最后一天”,因为它是计算日历牌中,当月最后一天的号数,也可以 然后把“号”与“最后一天”代入公式看一下: 公式就变成=IF(OR((号>最后一天),(号<1)),"",号) 这样是不是简单很多了,也容易理解了。 这就是一个常见的IF判断公式,在条件部份使用了OR函数进行逻辑“或”运算,只要“(号>最后一天),(号<1)”两部份中,任一部份为 提示:这只是为了分析方便而做的“简化”,实际使用时还要使用原公式的。 提示:对所有长公式都可以用这种方法“简化”,然后对每一部份逐一分析理解。 首先这是一个由IF函数构成的判断公式,大家都知道IF函数有三个参数,第一个参数是“条件”,第二个参数是“条件”为“真”是执行公式的含义是:如果当前单元格中显示的“号”大于当前月的“最后一天”或者小于“1”,那就说明这个“号”不应显示在当前月份牌中,
excel 制作日历 以前很多人喜欢在办公桌上放一本台历,方便查询日期,现在电脑已经普及了,大家都喜欢从电脑上查看日历,又方便又不占地方。 用编程的方法可以制做电子日历,但会编程的人不多。如今EXCEL*子表格的 普及率很高,由于它强大的数据处理能力,被很多人当做必不可少的办公工具。 在EXCEL中有很多时间函数,通过这些函数可以制做一款简单实用的日历牌。 先看一下做好的样式: 在这个日历牌的上面左右两个微调按钮,可以通过它们调整想要显示的年月。 面就介绍制做过程 1、选画边框 其中C2与D2单元格是合并单元格,用于显示年份。由于年份是四位数字,所以要占用两个单元格。 其中的E10:G10也是合并单元格,这是为了显示“今天”的日期,包含了年月日三个内容,所以要占三个单元格。 2、填入内容 这些内容不需要公式,直接手工输入,根据自己的喜好设置字体、字号、颜色。注意年份输入在C2单元格,月份输入在F2单元格,这两个位置会被下面的公式所引用。3、日历公式 这是关键一步,要输入公式了,公式的区域在B4:H9,由于第一个单元格是B4 单元格,所以公式中要对它进行“绝对引用”。 可能很多人都不相信,这个区域中的公式都是一样的,虽然B4:H9区域共有42 个单元格,但都使用了完全相同的公式,只要在B4单元格输入一个公式,然后通 过拖动复制的方式就可以完成所有公式的输入。 公式 =IF(OR(((ROW()-ROW($B$4))*7+(COLUMN()-COLUMN($B$4)-
WEEKDAY(DATE($C$2,$F$2,1))+2 ))>DAY(DATE($C$2,$F$2+1,1)-1),((ROW()-ROW($B$4))*7+(COLUMN()- COLUMN($B$4)-WEEKD AY(DATE($C$2,$F$2,1))+2))<1),"",((ROW()-ROW($B$4))*7+(COLUMN()- COLUMN($B$4)-WEE KDAY(DATE($C$2,$F$2,1))+2))) 公式有点长,分析起来感觉有些费力,我们试着对它进行“简化”。 可以看到公式中有一部份内容重复出现了三次,即 ((ROW()-ROW($B$4))*7+(COLUMN()-COLUMN($B$4)- WEEKDAY(DATE($C$2,$F$2,1))+2)”) , 为了方便叙述,给它起个名字叫“号”,也就是几月几号的意思。 还有一小段“DAY(DATE($C$2,$F$2+1,1)- 1)”,我们给它起名为“最后一天”,因为它是计算日历牌中,当月最后一天的号数,也可以理解为这个月有几天。 然后把“号”与“最后一天”代入公式看一下 公式就变成=IF(OR((号>最后一天),(号<1)),"", 号) 这样是不是简单很多了,也容易理解了。 这就是一个常见的IF判断公式,在条件部份使用了OR函数进行逻辑“或”运 算,只要“(号>最后一天),(号<1)”两部份中,任一部份为“真”,就使条件成立。 提示: 这只是为了分析方便而做的“简化”,实际使用时还要使用原公式的。 提示: 对所有长公式都可以用这种方法“简化”,然后对每一部份逐一分析理解。 首先这是一个由IF 函数构成的判断公式,大家都知道IF 函数有三个参数,第一个参数是“条件”,第二个参数是“条件”为“真”是执行的部份,第三个参数是 条件”为“假”时执行的部份,一般的使用格式为if( 条件,真,假) 公式的含义是: 如果当前单元格中显示的“号”大于当前月的“最后一天”或者小于“1”,
1.A l t+F11按下显示代码窗口后,再松开A l t+F11. 2.然后按F7,调出VBA窗口。 3.粘贴以下代码. PrivateSubCalendar1_Click() DimMyDayAsDate ActiveCell=Calendar1.Value Mydate=Calendar1.Value 'MsgBoxMydate Calendar1.Visible=0 EndSub PrivateSubWorksheet_SelectionChange(ByValTargetAsRange) IfTarget.Column=1OrTarget.Column=1AndTarget.Row>0Then IfIsDate(Target)Then Calendar1.Value=Target Else Calendar1.Today EndIf Calendar1.Visible=-1 Calendar1.Top=ActiveCell.Top+ActiveCell.Height Else Calendar1.Visible=0 EndIf EndSub 4.打开文件→保存book1(S) 5.打开视图→对象窗口 6.打开插入→对象窗口 7.找到日历控件11.0或9.0,按确定退出。 8.单击第一列(A列)中的任一单元格,选择日历中的需要的日期即可。 备注: 要改变日期输入位置,可按以下方法调整代码,找到下面的代码行(此代码行的意思是在A列(第1列)中添加日历。 IfTarget.Column=1OrTarget.Column=1AndTarget.Row>0Then 然后根据以下的方法覆盖粘贴此行代码 1.以下这一句就是B3:C5区域调用日期控件.
2020.1 日一二三四五六 1234 元旦腊八节初九初十567891011 十一小寒十三十四十五十六十七12131415161718 十八十九二十廿一廿二廿三廿四19202122232425 廿五大寒廿七廿八廿九除夕春节262728293031 初二初三初四初五初六初七
2020.2 日一二三四五六 1 初八2345678 初九初十立春十二十三十四元宵9101112131415 十六十七十八十九二十情人节廿二16171819202122 廿三廿四廿五雨水廿七廿八廿九23242526272829 二月初二初三初四初五初六初七
2020.3 日一二三四五六1234567 初八初九初十十一惊蛰十三十四891011121314 妇女节十六十七十八植树节二十廿一15161718192021 廿二廿三廿四廿五廿六春分廿八22232425262728 廿九三十三月初二初三初四初五293031 初六初七初八
2020.4 日一二三四五六 1234 愚人节初十十一清明567891011 十三十四十五十六十七十八十九12131415161718 复活节廿一廿二廿三廿四廿五廿六19202122232425 谷雨廿八廿九三十四月初二初三2627282930 初四初五初六初七初八
2020.5 日一二三四五六 12 劳动节初十3456789 十一青年节立夏十四十五十六十七10111213141516 母亲节十九二十廿一廿二廿三廿四17181920212223 廿五廿六廿七小满廿九三十闰四月24252627282930 初二初三初四初五初六初七初八 31 初九