版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、用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,lo
2、gical2, .) 1、啟動EXCEL2003,新建一個工作表,取名保存(如萬年歷.xls),并在相應的單元格中,輸入如圖1所示的文本。2、同時選中B1、C1、D1單元格,按“格式”工具欄上的“合并及居中”按鈕,將其合并成一個單元格,并輸入公式:=TODAY()。 選中B1(合并后的)單元格,執(zhí)行“格式單元格”命令,打開“單元格格式”對話框(如圖2),在“數字”標簽中的“分類”下面選中“日期”選項,再在右側“類型”下面選中“二一年三月十四日”選項,“確定”退出,將日期設置成中文形式。注意:TODAY()函數用于提取當前系統日期,請將系統日期一定要調整準確喲。 3、選中F1單元格,輸入公式:=
3、IF(WEEKDAY(B1,2)=7,"日",WEEKDAY(B1,2);選中H1單元格,輸入公式:=NOW()。選中F1單元格,打開“單元格格式”對話框,在“數字”標簽中的“分類”下面選中“特殊”選項,再在右側“類型”下面選中“中文小寫數字”選項,“確定”退出,將“星期數”設置成中文小寫形式;選中H1單元格,打開“單元格格式”對話框,在“數字”標簽中的“分類”下面選中“時間”選項,再在右側“類型”下面選中一款時間格式,“確定”退出。注意:上述前面一個公式的含義是:如果(IF)當前日期(B1)是星期“7”(WEEKDAY(B1,2)=7),則在F1單元格中顯示“日”,否則,
4、直接顯示出星期的數值(WEEKDAY(B1,2))。上述第二個函數(NOW()用于提取當前系統日期和時間,也請將系統日期和時間調整準確。4、在I1、I2單元格分別輸入1900、1901,然后同時選中I1、I2單元格,用“填充柄”向下拖拉至I151單元格,輸入19002050年份序列。同樣的方法,在J1至J12單元格中輸入112月份序列。5、選中D13單元格,執(zhí)行“數據有效性”命令,打開“數據有效性”對話框(如圖3),按“允許”右側的下拉按鈕,選中“序列”選項,在“來源”下面的方框輸入:=$I$1:$I$151,“確定”退出。同樣的操作,將F15單元格數據有效性設置為“=$J$1:$J$12”序
5、列。 注意:經過這樣的設置以后,當我們選中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月”(F
6、13=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單元格,用“填充柄”將上述公式復制到C2H2單元格中。注意:上述B2公式的含義是:如果“查
7、詢年月”的第1天是星期“7”(WEEKDAY(DATE)($D$13,$F$13,1),2)=B3)時,在該單元格顯示“1”,反之顯示“0”),為“查詢年月”獲取一個對照值,為下面制作月歷做準備。上述C2H2單元條中公式的含義與B2相似。在用拖拉法復制公式時,公式“絕對引用”的單元格(加了“$”號的,如“$D$13”等)不會發(fā)生改變,而“相對引用”的單元格(沒有加“$”號的,如“B3”等),則會智能化地發(fā)生變化,例如在E2單元格中,“B3”變成了“E3”,整個公式成為:=IF(WEEKDAY(DATE($D$13,$F$13,1),2)=E3,1,0)。8、選中B6單元格,輸入公式:=IF(B
8、2=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單元格中的公式復制到D6H6單元格中。選中C7單元格,輸入公式:=B7+1。用“填充柄”將C7單元格中的公式復制到C8、C9單元格中。同時選中C7C9單元格,用“填充柄”將其中的公式復制到D7H9單元格中。選中C10單元格
9、,輸入公式:=IF(B11>=$A$2,0,IF(B11>0,B11+1,IF(C6=1,1,0)。用“填充柄”將C10單元格中的公式復制到D10H10單元格和C11單元格中。至此,整個萬年歷(其實沒有萬年,只有從19002050的151年)制作完成。下面,我們一起來將其裝飾一下。9、選中相應的單元格,利用工具欄上的相應按鈕,設置好字體、字號、字符顏色等。選中相應的單元格,打開“單元格格式”對話框,在“對齊”標簽下,設置好單元格中文本的對齊方式(通常情況下,垂直對齊可以一次性設置為“居中”,水平“對齊”根據具體情況設置)。同時選中I列和J列,右擊鼠標,選“隱藏”選項,將相應的列隱藏
10、起來,使得界面更加友好。用同樣的方法,將第2和第3行也隱藏起來。10、選中B5H11單元格區(qū)域,打開“單元格格式”對話框,進入“邊框”標簽,選擇好“顏色、樣式”,并“預置”好邊框范圍,然后“確定”退出,為月歷加上邊框。11、執(zhí)行“工具選項”命令,打開“選項”對話框(如圖4),在“視圖”標簽下(通常是默認標簽),清除“零值”和“網格線”復選框中的“”號,“確定”退出,讓“零值”和“網格線”不顯示出來。12、將B14H14和B15H15單元格分別合并成一個單元格,并在B14和B15單元格中輸入公式:=IF(AND(MONTH(D1)=1,DAY(D1)=1),"新的新氣象!加油呀!&qu
11、ot;,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),"提
12、高警惕,保衛(wèi)祖國!",IF(AND(MONTH(D1)=9,DAY(D1)=10),"老師,您辛苦了!",IF(AND(MONTH(D1)=10,DAY(D1)=1),"祝我們偉大的祖國繁榮富強",0)。 設置好B14和B15單元格的字體、字號、字符顏色。注意:上述公式的含義是:如果當前日期逢到相關的節(jié)日(如“元旦”等),則在B14或B15單元格顯示出相應的祝福語言(如“新的新氣象!加油呀!”,參見圖5)。由于IF函數只能嵌套7層,而節(jié)日數量超過7個(我們這里給出了9個),因此,我們用兩個單元格來顯示。 13、執(zhí)行“格式工作表背景”命令,打開“
13、工作表背景”對話框(如圖6),選擇一張合適的圖片后,按“插入”按鈕,將其襯于工作表文字下面。14、在按住“Ctrl”鍵的同時,單擊D13和F13單元格,同時選中兩個單元格,開“單元格格式”對話框,切換“保護”標簽(如圖7),清除“鎖定”前面復選框中的“”號,“確定”退出。 15、執(zhí)行“工具保護保護工作表”命令,打開“保護工作表”對話框(如圖8),兩次輸入密碼后,確定退出。注意:經過這樣的設置后,整個工作表中除了D13和F13單元格中的內容可以改變外,其它單元格中的內容均不能改變,保證了萬年歷的使用可靠性。 在VB中操縱Excel 一Excel對象模塊 Application 對象 | 集合 -
14、 |-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 最上層的Ap
15、plication是指整個應用程序,其中最常用到的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 Pub
16、lic 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,,用來放工作表相
17、關的資料。 Workbooks(workbook) 對象 | 集合 - |-HTMLProjcet |-Publishobjects |-RoutingSlip |-DocumentProperties |-Areas |-Worksheets |-WebOptions |-Names |-VBProject |-CustomViews |-CommandBars |-PivotCaches |-Windows |-Styles |-Charts 調用方法是聲明一個工作表變量,用For-Each循環(huán)方式可以讀取集合對象Workbooks里的所有工作表名。 代碼如下: Dim temp As E
18、xcel.Worksheet For Each temp In wbExcel.Worksheets 'wbExcel是上面代碼中聲明的Workbook FORM1.Combo1.AddItem temp.Name Next 三讀取工作表某個選取范圍的內容。 要讀取工作表某個范圍單元格,可先定義一個Excel范圍對象變量,然后使用Rows或Columns函數指定某行或某列的范圍,范圍單元格(Cells)地址以目前被選取范圍為基準。具體方法如下: (1)設置工作表對象變量操作哪個工作表; (2)選取工作表的某行或某列; (3)在上面的選取范圍內讀取某個單元格內容。 代碼如下: Dim T
19、empsheet 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) 四其他 用TempRan
20、ge.Find("").Column方法可以查找目前范圍內第一行的第一個空白單元格 如何實現VB與EXCEL的無縫連接 2003-02-17· ·吳剛··yesky VB是常用的應用軟件開發(fā)工具之一,由于VB的報表功能有限,而且一但報表格式發(fā)生變化,就得相應修改程序,給應用軟件的維護工作帶來極大的不便。因此有很多程序員現在已經充分利用EXECL的強大報表功來實現報表功能。但由于VB與EXCEL由于分別屬于不同的應用系統,如何把它們有機地結合在一起,是一個值得我們研究的課題。一、 VB讀寫EXCEL表:VB本身提自動化功能可以讀寫EXC
21、EL表,其方法如下: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 =
22、 CreateObject("Excel.Application") '創(chuàng)建EXCEL對象Set xlBook = xlApp.Workbooks.Open("文件名") '打開已經存在的EXCEL工件簿文件xlApp.Visible = True '設置EXCEL對象可見(或不可見)Set xlSheet = xlBook.Worksheets("表名") '設置活動工作表xlSheet.Cells(row, col) =值 '給單元格(row,col)賦值xlSheet.PrintOut &
23、#39;打印工作表xlBook.Close (True) '關閉工作簿xlApp.Quit '結束EXCEL對象Set xlApp = Nothing '釋放xlApp對象xlBook.RunAutoMacros (xlAutoOpen) '運行EXCEL啟動宏xlBook.RunAutoMacros (xlAutoClose) '運行EXCEL關閉宏 4、在運用以上VB命令操作EXCEL表時,除非設置EXCEL對象不可見,否則VB程序可繼續(xù)執(zhí)行其它操作,也能夠關閉EXCEL,同時也可對EXCEL進行操作。但在EXCEL操作過程中關閉EXCEL對象時,V
24、B程序無法知道,如果此時使用EXCEL對象,則VB程序會產生自動化錯誤。形成VB程序無法完全控制EXCEL的狀況,使得VB與EXCEL脫節(jié)。二、 EXCEL的宏功能:EXCEL提供一個Visual Basic編輯器,打開Visual Basic編輯器,其中有一工程屬性窗口,點擊右鍵菜單的"插入模塊",則增加一個"模塊1",在此模塊中可以運用Visual Basic語言編寫函數和過程并稱之為宏。其中,EXCEL有兩個自動宏:一個是啟動宏(Sub Auto_Open()),另一個是關閉宏(Sub Auto_Close())。它們的特性是:當用EXCEL打含有
25、啟動宏的工簿時,就會自動運行啟動宏,同理,當關閉含有關閉宏的工作簿時就會自動運行關閉宏。但是通過VB的自動化功能來調用EXCEL工作表時,啟動宏和關閉宏不會自動運行,而需要在VB中通過命令xlBook.RunAutoMacros (xlAutoOpen)和xlBook.RunAutoMacros (xlAutoClose) 來運行啟動宏和關閉宏。三、 VB與EXCEL的相互勾通:充分利用EXCEL的啟動宏和關閉宏,可以實現VB與EXCEL的相互勾通,其方法如下:在EXCEL的啟動宏中加入一段程序,其功能是在磁盤中寫入一個標志文件,同時在關閉宏中加入一段刪除此標志文件的程序。VB程序在執(zhí)行時通過
26、判斷此標志文件存在與否來判斷EXCEL是否打開,如果此標志文件存在,表明EXCEL對象正在運行,應該禁止其它程序的運行。如果此標志文件不存在,表明EXCEL對象已被用戶關閉,此時如果要使用EXCEL對象運行,必須重新創(chuàng)建EXCEL對象。四、舉例:1、在VB中,建立一個FORM,在其上放置兩個命令按鈕,將ommand1的Caption屬性改為EXCEL,Command2的Caption屬性改為End。然后在其中輸入如下程序:Dim xlApp As Excel.Application '定義EXCEL類 Dim xlBook As Excel.Workbook '定義工件簿類Di
27、m xlsheet As Excel.Worksheet '定義工作表類 Private Sub Command1_Click() '打開EXCEL過程If Dir("D:tempexcel.bz") = "" Then '判斷EXCEL是否打開Set xlApp = CreateObject("Excel.Application") '創(chuàng)建EXCEL應用類xlApp.Visible = True '設置EXCEL可見Set xlBook = xlApp.Workbooks.Open("
28、;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("
29、D:tempexcel.bz") <> "" Then '由VB關閉EXCEL xlBook.RunAutoMacros (xlAutoClose) '執(zhí)行EXCEL關閉宏xlBook.Close (True) '關閉EXCEL工作簿xlApp.Quit '關閉EXCELEnd IfSet xlApp = Nothing '釋放EXCEL對象EndEnd Sub 2、在盤根目錄上建立一個名為Temp的子目錄,在Temp目錄下建立一個名為"bb.xls"的EXCEL文件。3、在"bb.
30、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分別屬兩個不同的應用系統,均可同時進行操作,由于系統加了判斷,因此在V
31、B程序中重復點擊EXCEL按鈕時會提示EXCEL已打開。如果在EXCEL中關閉EXCEL后再點EXCEL按鈕,則會重新打開EXCEL。而無論EXCEL打開與否,通過VB程序均可關閉EXCEL。這樣就實現了VB與EXCEL的無縫連接。 Excel制作獎金計算表2006年08月16日 03:52:06 陳秀峰 源碼下載某公司規(guī)定:一個月獎金基數為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單元格合并成一個單元格后,輸入表格標題(如“曉
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 檢驗員個人工作總結五篇
- 大專畢業(yè)生自我鑒定
- 中醫(yī)兒科學練習卷附答案
- 客服員工辭職報告(6篇)
- xx市老舊廠區(qū)改造項目可行性研究報告
- 護理工作個人年終總結5篇
- 城市更新項目規(guī)劃方案
- 外出聽課學習總結
- 2024年雙方股權調整協議3篇
- 城中村改造項目選址與環(huán)境評估
- 2024年國家氣象系統招聘(864人)高頻難、易錯點500題模擬試題附帶答案詳解
- 中央空調工程售后服務的方案
- 核酸是遺傳信息的攜帶者課件 2024-2025學年高一上學期生物人教版必修1
- 2024內置直驅動力刀塔
- 窗簾采購投標方案(技術方案)
- TTJSFB 002-2024 綠色融資租賃項目評價指南
- 統編版(2024新版)七年級上冊歷史期末復習課件
- 2024-2030年串番茄行業(yè)市場發(fā)展分析及前景趨勢與投資研究報告
- 制造業(yè)數據架構設計頂層規(guī)劃方案
- 新《建設工程施工合同司法解釋》逐條解讀
- 2024-2025學年高中英語學業(yè)水平合格性考試模擬測試卷一含解析
評論
0/150
提交評論