版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、.EXCELVBA 編程基礎(chǔ)Excel 最重要的應(yīng)用就是利用公式進(jìn)行計(jì)算。 無論輸入是純粹的數(shù)字運(yùn)算, 還是引用其他單元格計(jì)算,只要在一個(gè)單元格中輸入公式,就能得到結(jié)果。這個(gè)直接顯示結(jié)果的設(shè)計(jì)對(duì)于絕大多數(shù)場(chǎng)合來說都是適用的, 但某些情況下就不那么讓人滿意了。 比如說在做工程施工的預(yù)結(jié)算編寫,使用 Excel ,既要寫出工程量的計(jì)算式,也要看到它的結(jié)果,于是這樣相同的公式在 Excel 里面要填兩次, 一次在文本格式的單元格中輸入公式, 一次是在數(shù)據(jù)格式的單元格中輸入公式讓 Excel 計(jì)算結(jié)果。如何既能看到公式又能看到結(jié)果呢?這個(gè)問題筆者認(rèn)為可以從兩個(gè)方面考慮:一種方法是所謂 “已知結(jié)果,顯示
2、公式 ”,先在數(shù)據(jù)格式單元格中輸入公式讓 Excel 計(jì)算結(jié)果,然后在相鄰的單元格中看到公式;另一種方法所謂 “已知公式,顯示結(jié)果 ”,就是先在一個(gè)文本格式的單元格中輸入公式,在相鄰的單元格中看到結(jié)果。已知結(jié)果,顯示公式假設(shè) C 列為通過公式計(jì)算得到的結(jié)果(假設(shè) C1 為 “=A1+B1” ,或者直接是數(shù)字運(yùn)算 “ =2+3 ”),而相鄰的 D 列是你需要顯示公式的地方(即 D1 應(yīng)該顯示為 “ =A1+B1 ”或者“ =2+3 ”)。1. 打開 “工具 ”菜單選擇 “選項(xiàng) ”命令,出現(xiàn) “選項(xiàng) ”對(duì)話框。2. 在“常規(guī) ”選項(xiàng)卡中,選中 “ R1C1引用方式 ”選項(xiàng)。3.定義名稱,將“引用位
3、置 ”由 “ =GET.CELL(6,Sheet1!RC- 1) ”即可。這里的 RC-1含義是如果在當(dāng)前單元格的同行前一列單元格中有公式結(jié)果,則在當(dāng)前單元格中得到公式內(nèi)容,即在含公式結(jié)果單元格的同行后一列單元格顯示公式內(nèi)容;如果將 RC-1改為 RC1則在公式結(jié)果的同行前一列單元格顯示公式內(nèi)容。,4. 如果 “引用位置 ”中含有 “ RC-1 ”,則在含公式結(jié)果單元格的同行后一列單元格中輸入“=FormulaofResult ”即可得到公式;如果 “引用位置 ”中含有 “RC1 ”,則在含公式結(jié)果單元格的同行前一列單元格中輸入 “=FormulaofResult ”即可得到公式。提示:如果想
4、要在含公式結(jié)果單元格的同行后數(shù)第2 列中顯示公式內(nèi)容,則需要把“引用位置 ”中的 “RC1 ”改為 “RC2 ”。.-get.cell函數(shù)說明函數(shù)定義 :GET.CELL(類型號(hào) ,單元格 (或范圍 )實(shí)例:比如現(xiàn)在我們要取得A1 單元格里的數(shù)據(jù)格式 ?結(jié)果顯示在 B1 步驟如下 :1.任選一個(gè)單元格 - 插入 - 名稱 - 定義2.在名稱稱輸入 AA( 任意名稱 )3.在引用位置上寫入 =GET.CELL(7,Sheet1!$A$1)4.點(diǎn)添加5.在 B1 單元格里輸入 =AA其中類型號(hào) ,即你想要得到的信息的類型號(hào),可以在 1-66( 表示可以返回一個(gè)單元格里66 種你要的信息 )以下是類
5、型號(hào)及代表的意思1 參照儲(chǔ)存格的絕對(duì)地址2 參照儲(chǔ)存格的列號(hào)3 參照儲(chǔ)存格的欄號(hào)4 類似 TYPE 函數(shù)5 參照地址的內(nèi)容6 文字顯示參照位址的公式7 參照位址的格式,文字顯示8 文字顯示參照位址的格式9 傳回儲(chǔ)存格外框左方樣式,數(shù)字顯示.10 傳回儲(chǔ)存格外框右方樣式,數(shù)字顯示11 傳回儲(chǔ)存格外框方上樣式,數(shù)字顯示12 傳回儲(chǔ)存格外框方下樣式,數(shù)字顯示13 傳回內(nèi)部圖樣,數(shù)字顯示14 如果儲(chǔ)存格被設(shè)定 locked 傳回 True15 如果公式處于隱藏狀態(tài)傳回 True16 傳回儲(chǔ)存格寬度17 以點(diǎn)為單位傳回儲(chǔ)存格高度18 字型名稱19 以點(diǎn)為單位元傳回字號(hào)20 如果儲(chǔ)存格所有或第一個(gè)字符為加
6、粗傳回True21 如果儲(chǔ)存格所有或第一個(gè)字符為斜體傳回True22 如果儲(chǔ)存格所有或第一個(gè)字符為單底線傳回 True23 如果儲(chǔ)存格所有或第一個(gè)字符字型中間加了一條水平線傳回True24 傳回儲(chǔ)存格第一個(gè)字符色彩數(shù)字, 1 至 56 。如果設(shè)定為自動(dòng),傳回 025 MS Excel 不支持大綱格式26 MS Excel 不支持陰影格式27 數(shù)字顯示手動(dòng)插入的分頁線設(shè)定28 大綱的列層次29 大綱的欄層次30 如果范圍為大綱的摘要列則為 True31 如果范圍為大綱的摘要欄則為True.32 顯示活頁簿和工作表名稱33 如果儲(chǔ)存格格式為多行文字則為 True34 傳回儲(chǔ)存格外框左方色彩,數(shù)字顯
7、示。如果設(shè)定為自動(dòng),傳回035 傳回儲(chǔ)存格外框右方色彩,數(shù)字顯示。如果設(shè)定為自動(dòng),傳回036 傳回儲(chǔ)存格外框上方色彩,數(shù)字顯示。如果設(shè)定為自動(dòng),傳回037 傳回儲(chǔ)存格外框下方色彩,數(shù)字顯示。如果設(shè)定為自動(dòng),傳回038 傳回儲(chǔ)存格前景陰影色彩,數(shù)字顯示。如果設(shè)定為自動(dòng),傳回039 傳回儲(chǔ)存格背影陰影色彩,數(shù)字顯示。如果設(shè)定為自動(dòng),傳回040 文字顯示儲(chǔ)存格樣式41 傳回參照地址的原始公式42 以點(diǎn)為單位傳回使用中窗口左方至儲(chǔ)存格左方水平距離43 以點(diǎn)為單位傳回使用中窗口上方至儲(chǔ)存格上方垂直距離44 以點(diǎn)為單位傳回使用中窗口左方至儲(chǔ)存格右方水平距離45 以點(diǎn)為單位傳回使用中窗口上方至儲(chǔ)存格下方垂直
8、距離46 如果儲(chǔ)存格有插入批注傳回 True47 如果儲(chǔ)存格有插入聲音提示傳回 True48 如果儲(chǔ)存格有插入公式傳回 True49 如果儲(chǔ)存格是數(shù)組公式的范圍傳回 True50 傳回儲(chǔ)存格垂直對(duì)齊,數(shù)字顯示51 傳回儲(chǔ)存格垂直方向,數(shù)字顯示52 傳回儲(chǔ)存格前綴字符53 文字顯示傳回儲(chǔ)存格顯示內(nèi)容.54 傳回儲(chǔ)存格數(shù)據(jù)透視表名稱55 傳回儲(chǔ)存格在數(shù)據(jù)透視表的位置56 樞紐分析57 如果儲(chǔ)存格所有或第一個(gè)字符為上標(biāo)傳回 True58 文字顯示傳回儲(chǔ)存格所有或第一個(gè)字符字型樣式59 傳回儲(chǔ)存格底線樣式,數(shù)字顯示60 如果儲(chǔ)存格所有或第一個(gè)字符為下標(biāo)傳回 True61 樞紐分析62 顯示活頁簿和工作
9、表名稱63 傳回儲(chǔ)存格的填滿色彩64 傳回圖樣前景色彩65 樞紐分析66 顯示活頁簿名稱-已知公式,顯示結(jié)果假設(shè) C 列為輸入的沒有等號(hào)公式 (假設(shè) C1 為 “A1+B1”),而相鄰的 D 列是你需要存放公式計(jì)算結(jié)果的地方(即 D1 顯示 A1 和 B1 單元格相加的結(jié)果)。1. 選中 D1 ,然后打開 “插入 ”菜單選擇 “名稱 ”命令中的 “定義 ”子命令,出現(xiàn) “定義名稱 ”對(duì)話框。2. 在“在當(dāng)前工作表中的名稱 ”輸入欄中輸入定義的名稱 “ ResultofFomula ,”在下方的 “引用位置 ”編輯欄中輸入 “=EVALUATE(Sheet1!C1)” ,單擊 確認(rèn) 按鈕退出。3
10、. 在 D1 中輸入 “ =ResultofFomula ,”然后選中按住右下角的填充柄向下拉動(dòng)填充即可。提示: EVALUATE是 Eexcel 4 0 版的宏表函數(shù), Excel 2000和 Excel 2002中還支持,但只可用于名稱定義中。.4. 填充后要按 F9 進(jìn)行重算,如果 C 列的公式有改動(dòng),也需要及時(shí)按 F9 進(jìn)行重算。巧施妙計(jì),就能讓公式和結(jié)果在 Excel 中和平共處了,你也試試吧。62 、Microsoft Excel 是一款功能非常強(qiáng)大的電子表格軟件。它可以輕松地完成數(shù)據(jù)的各類數(shù)學(xué)運(yùn)算,并用各種二維或三維圖形形象地表示出來, 從而大大簡(jiǎn)化了數(shù)據(jù)的處理工作。但若僅利用
11、Excel 的常用功能來處理較復(fù)雜的數(shù)據(jù), 可能仍需進(jìn)行大量的人工操作。 但 Excel 的強(qiáng)大遠(yuǎn)遠(yuǎn)超過人們的想象 - 宏的引入使其具有了無限的擴(kuò)展性, 因而可以很好地解決復(fù)雜數(shù)據(jù)的處理問題。隨著支持 Windows 的應(yīng)用程序的不斷增多和功能的不斷增強(qiáng), 越來越多的程序增加了宏處理來方便用戶的自由擴(kuò)展。 但初期各應(yīng)用程序所采用的宏語言并不統(tǒng)一, 這樣用戶每使用一種應(yīng)用程序時(shí)都得重新學(xué)習(xí)一種宏語言。為了統(tǒng)一各種應(yīng)用程序下的宏, Microsoft 推出了 VBA (Visual Basic for Applications )語言。VBA 是從流行的 Visual Basic編程語言中派生出來
12、的一種面向應(yīng)用程序的語言,它適用于各種 Windows 應(yīng)用程序,可以解決各應(yīng)用程序的宏語言不統(tǒng)一的問題。除此之外,使用 VBA 語言還有如下優(yōu)點(diǎn): 1 、VBA 是一種通用程序語言, 通過它不僅可以共享 Microsoft 相關(guān)的各種軟件(如 Excel 、 Word 、 Access ) ,而且隨著其它的一些軟件(如大名鼎鼎的 AutoCAD2000 )等對(duì) VBA 的支持,這些軟件也已進(jìn)入到了 VBA 的控制范圍; 2 、可以將用 VBA 編寫的程序復(fù)制到 Visual Basic 中調(diào)試并運(yùn)行,從而實(shí)現(xiàn)用 Visual Basic 來控制有關(guān)的應(yīng)用程序; 3 、VBA 提供的大量?jī)?nèi)部函
13、數(shù)大大簡(jiǎn)化了用戶的操作。對(duì)于而今的宏,不僅語言統(tǒng)一規(guī)范,而且其功能也已非常強(qiáng)大。但在大多數(shù)介紹Excel的 傻瓜書 、 指南 、入門與提高 等參考書中往往略過不提,或淺淺帶過,讀者從中獲得的有關(guān)知識(shí)往往不足以應(yīng)付處理復(fù)雜數(shù)據(jù)的需求。為了完成工作,就讓我們一起來學(xué)習(xí) 宏的妙用吧。一 ) 、宏的自學(xué)首先需要明確的是,本文不可能教會(huì)您關(guān)于宏的所有內(nèi)容。您需要學(xué)會(huì)利用錄制宏 的方法來學(xué)習(xí)宏:點(diǎn)擊 Excel 工具 下拉菜單中 宏 下 錄制新宏 ,此后可象平時(shí)一樣進(jìn)行有關(guān)操作,待完成后停止錄制。然后再點(diǎn)擊 工具 下拉菜單中 宏 下 宏 的 編輯 選項(xiàng)即可打開剛才所錄制的宏的 Visual Basic 源
14、程序,并且可以在此時(shí)的 幫助 下拉菜單中獲得有關(guān)的編程幫助。對(duì)錄制宏進(jìn)行修改不僅可以學(xué)習(xí)宏的使用,還能大大簡(jiǎn)化宏的編寫。.二) 、基本概念為了學(xué)習(xí) Excel 中的宏,我們需要先了解以下一些基本概念。1、工作簿: Workbooks、 Workbook、ActiveWorkbook、ThisWorkbookWorkbooks集合包含 Excel 中所有當(dāng)前打開的Excel 工作簿,亦即所有打開的Excel文件; Workbook對(duì)應(yīng) Workbooks中的成員,即其中的Excel 文件; ActiveWorkbook代表當(dāng)前處于活動(dòng)狀態(tài)的工作簿,即當(dāng)前顯示的Excel 文件; ThisWork
15、book代表其中有Visual Basic代碼正在運(yùn)行的工作簿。在具體使用中可用 Workbooks(index) 來引用簿名稱或編號(hào);如 Workbooks(1) 、Workbooks(開工作簿的順序來確定,第一個(gè)打開的工作簿編號(hào)為Workbook 對(duì)象,其中 index 為工作年度報(bào)表 .xls) 。而編號(hào)按照創(chuàng)建或打 1 ,第二個(gè)打開的工作簿為 2 。2、工作表: Worksheets、Worksheet、ActiveSheetWorksheets集合包含工作簿中所有的工作表,即一個(gè)Excel 文件中的所有數(shù)據(jù)表頁;而 Worksheet 則代表其中的一個(gè)工作表; ActiveSheet
16、 代表當(dāng)前處于的活動(dòng)狀態(tài)工作表,即當(dāng)前顯示的一個(gè)工作表??捎?Worksheets(index)來引用 Worksheet對(duì)象,其中 index為工作表名稱或索引號(hào);如 Worksheets(1)、Worksheets(第一季度數(shù)據(jù) ) 。工作表索引號(hào)表明該工作表在工作表標(biāo)簽中的位置:第一個(gè)(最左邊的)工作表的索引號(hào)為1,最后一個(gè)(最右邊的)為Worksheets.Count。需要注意的是:在使用過程中Excel 會(huì)自動(dòng)重排工作表索引號(hào),保持按照其在工作表標(biāo)簽中的從左至右排列,工作表的索引號(hào)遞增。因此,由于可能進(jìn)行的工作表添加或刪除,工作表索引號(hào)不一定始終保持不變。3、圖表: Chart、Ch
17、arts 、ChartObject、ChartObjects、ActiveChartChart 代表工作簿中的圖表。該圖表既可為嵌入式圖表(包含在 ChartObject 中),也可為一個(gè)分開的(單獨(dú)的)圖表工作表。Charts代表指定工作簿或活動(dòng)工作簿中所有圖表工作表的集合,但不包括嵌入式在工作表或?qū)υ捒蚓庉嫳碇械膱D表。使用 Charts(index) 可引用單個(gè) Chart 圖表,其中 index 是該圖表工作表的索引號(hào)或名稱; 如 Charts(1) 、Charts( 銷售圖表 ) 。圖表工作表的索引號(hào)表示圖表工作表在工作簿的工作表標(biāo)簽欄上的位置。 Charts(1) 是工作簿中第一個(gè)(
18、最左邊的)圖表工作表; Charts(Charts.Count)為最后一個(gè)(最右邊的)圖表工作表。ChartObject代表工作表中的嵌入式圖表,其作用是作為Chart對(duì)象的容器。利用.ChartObject可以控制工作表上嵌入式圖表的外觀和尺寸。ChartObjects代表指定的圖表工作表、對(duì)話框編輯表或工作表上所有嵌入式圖表的集合。可由ChartObjects(index)引用單個(gè)ChartObject,其中index為嵌入式圖表的編號(hào)或名稱。如Worksheets(Sheet1).ChartObjects(1)、Worksheets(sheet1).ChartObjects(chart1
19、)分別對(duì)應(yīng) Sheet1工作表中的第一個(gè)嵌入式圖表、以及名為 Chart1的嵌入式圖表。ActiveChart可以引用活動(dòng)狀態(tài)下的圖表,不論該圖表是圖表工作表,或嵌入式圖表。而對(duì)于圖表工作表為活動(dòng)工作表時(shí),還可以通過ActiveSheet屬性引用之。4、單元格:Cells、ActiveCell、Range、 AreasCells(row,column)代表單個(gè)單元格,其中row為行號(hào), column為列號(hào)。如可以用Cells(1,1)、 Cells(10,4)來引用 A1、D10單元格。 ActiveCell代表活動(dòng)工作表的活動(dòng)單元格,或指定工作表的活動(dòng)單元格。Range 代表工作表中的某一單
20、元格、某一行、某一列、某一選定區(qū)域(該選定區(qū)域可包含一個(gè)或若干連續(xù)單元格區(qū)域)或者某一三維區(qū)域??捎?Range(arg)來引用單元格或單元格區(qū)域, 其中 arg 可為單元格號(hào)、單元格號(hào)范圍、單元格區(qū)域名稱。如Range(A5)、 Range(A1:H8)、 Range(Criteria)。雖然可用Range(A1)返回單元格 A1 ,但用 Cells 更方便,因?yàn)榇藭r(shí)可用變量指定行和列??蓪ange與 Cells結(jié)合起來使用,如Range(Cells(1,1),Cells(10,10)代表單元格區(qū)域 A1:J10;而expression.Cells(row,column)返回單元格區(qū)域中的
21、一部分,其中expression是返回Range的表達(dá)式,row和column為相對(duì)于該區(qū)域的左上角偏移量。如由Range(C5:C10).Cells(1,1)引用單元格C5 。Areas 為選定區(qū)域內(nèi)的連續(xù)單元格塊的集合,其成員是Range 對(duì)象。而其中的每個(gè)Range 對(duì)象代表選定區(qū)域內(nèi)與其它部分相分離的一個(gè)連續(xù)單元格塊。某些操作不能在選定區(qū)域內(nèi)的多個(gè)單元格塊上同時(shí)執(zhí)行; 必須在選定區(qū)域內(nèi)的單元格塊數(shù)Areas.Count上循環(huán),對(duì)每個(gè)單獨(dú)的單元格塊分別執(zhí)行該操作。此時(shí),可用Areas(index)從集合中返回單個(gè)Range 對(duì)象,其中 index為單元格塊編號(hào);如Areas(1)。5、
22、行與列:Rows、Columns、Row 、ColumnRows、Columns分別代表活動(dòng)工作表、單元格區(qū)域范圍Range、指定工作表中的所有行數(shù)、列數(shù)。對(duì)于一個(gè)多選單元格區(qū)域范圍Range的 Rows、Columns,只返回該范圍.中第一個(gè)區(qū)域的行數(shù)、 列數(shù)。例如,如果 Range 對(duì)象有兩個(gè)區(qū)域( areas )A1:B2和 C3:D4 ,Rows.Count返回 2 而不是 4??赏ㄟ^ Rows( 行號(hào) ) 、Columns( 列號(hào) ) 來引用相應(yīng)的行與列;如 Rows(3) 、Columns(4)分別對(duì)應(yīng)第三行、 D 列。利用 Rows 、Column 可以獲得區(qū)域中第一塊的第一行行
23、號(hào)、第一列列號(hào),所得值均以十進(jìn)制數(shù)表示。三) 、處理單元格1、直接賦值與引用將變量、常量值直接賦給單元格、或?qū)卧竦闹抵苯淤x給變量、常量,這是在 Excel 中最簡(jiǎn)單的單元格賦值及引用方法。 如下例將工作表 Sheet1A1 單元格的值賦給 Integer 變量 I ,并將 I+1 的值賦給當(dāng)前工作表中的 B1 單元格:Dim I As IntegerI=Worksheets(Sheet1).Cells(1,1)Cells(1,2).Select 選定 B1 單元格,使其成為當(dāng)前單元格ActiveCell=I+1 以 I+1為當(dāng)前單元格賦值2、用公式賦值在宏的使用中, 可能會(huì)更多地用公式來給
24、單元格賦值。 如下例將相對(duì)于活動(dòng)單元格左側(cè)第 4 列、向上第 6 行至向上第 2 行的單元格數(shù)值之和賦給活動(dòng)單元格 (以本行、本列為第 0 行、 0 列):ActiveCell.Formula=AVERAGE(R-6C-4:R-2C-4)3、引用其它工作表中的單元格當(dāng)賦值公式中需要引用其它工作表中的單元格時(shí),在被引用的單元格前加上 工作表名! 即可。如以下即在賦值中引用了 Sheet1 工作表中的 A1 至 A4 單元格:Range(E10).Formula=SUM(Sheet1!R1C1:R4C1)但需注意的是: 當(dāng)被引用的工作表名中含有某些可能引起公式歧義的字符時(shí),需要用單引號(hào) 將工作表名
25、括起來。如:Worksheets(Sheet1).ActiveCell.Formula=Max(1-1剖面 !D3:D5)4、引用其它工作簿中的單元格在被引用單元格所在工作表名前加上 工作簿名 ,即可引用其它工作簿中的單元格。.如:ActiveCell.Formula=MAX(Book1.xlsSheet3!R1C:RC4)同樣需注意的是: 當(dāng)被引用的工作簿名中含有某些可能引起公式歧義的字符時(shí),需要用中括號(hào) 、 及單引號(hào) 將工作簿名括起來。如:Cells(1,2).Formula=MIN(1995-2000總結(jié) .xls1995-1996年 !$A$1:$A$6)5、避免循環(huán)引用在上述公式賦值
26、過程中,應(yīng)避免在公式中引用被賦值的單元格,防止循環(huán)引用錯(cuò)誤。6、添加批注可按如下方法格給單元格添加批注:Dim批注文本As String批注文本 = 批注示例 準(zhǔn)備批注文本ActiveCell.AddComment 添加批注ActiveCell.Comment.Text Text:=臨時(shí) 寫入批注文本ActiveCell.Comment.Visible=False 隱藏批注7、添加、刪除、復(fù)制、剪切、粘貼單元格Range(D10).Insert Shift:=xlToRight 在 D10 單元格處添加一新單元格, 原 D10格右移Range(C2).Insert Shift:=xlDown
27、在 C2 單元格處添加一新單元格,原C2 格下移Rows(2).EntireRow.Insert 在第 2行前添加一空白行,原第 2行下移Columns(3).EntireColumn.Insert 在 C 列前添加一空白列,原C 列右移Columns(A:D).Delete Shift:=xlToLeft 刪除 A 列至 D 列,其右側(cè)列左移Rows(3:5).Delete Shift:=xlUp 刪除第 3 行至第 5 行,其下方行上移Range(B2).EntireRow.Delete 刪除第 2 行Range(C4).EntireColumn.Delete 刪除C列Range(B10:
28、C13).Copy 復(fù)制 B10至 C13 單元格區(qū)域Cells(1,2).Cut 剪切 B1單元格.Range(D10).SelectActiveSheet.Paste 自 D10 單元格起粘貼剪貼板中的內(nèi)容四)、圖表1、工作表圖表以下為一添加工作表圖表的實(shí)例。Charts.Add after:=Worksheets(Sheet1) 在 Sheet1工作表之后添加新圖表工作表ActiveChart.ChartType=xlXYScatterSmooth 圖表類型為 XY 平滑線散點(diǎn)圖ActiveChart.SetSourceData Source:=Sheets(結(jié)點(diǎn)坐標(biāo) ).Range(A
29、1:B69),PlotBy:= _xlColumns 圖表數(shù)據(jù)來源于 結(jié)點(diǎn)坐標(biāo) 工作表的 A1 至 B69 單元格,且按列繪圖。ActiveChart.Location Where:=xlLocationAsNewSheetWith ActiveChart.HasTitle = True.ChartTitle.Characters.Text = 節(jié)點(diǎn)坐標(biāo) 圖表標(biāo)題 節(jié)點(diǎn)坐標(biāo) .Axes(xlCategory, xlPrimary).HasTitle = True.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = x x軸標(biāo)題x.Ax
30、es(xlValue, xlPrimary).HasTitle = True.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = y y軸標(biāo)題 yEnd WithWith ActiveChart.Axes(xlCategory).HasMajorGridlines = True 顯示 x 軸主網(wǎng)格線,默認(rèn)情況下為顯示.HasMinorGridlines = True 顯示 x 軸次網(wǎng)格線,默認(rèn)情況下為不顯示End WithWith ActiveChart.Axes(xlValue).HasMajorGridlines = True 標(biāo)出 x
31、 軸主網(wǎng)格值,默認(rèn)情況下為標(biāo)注.HasMinorGridlines = False 取消 x 軸次網(wǎng)格值標(biāo)注,默認(rèn)情況下為不標(biāo)注End WithActiveChart.Legend.Position = xlRight 圖例顯示在圖表右側(cè).2、嵌入式圖表嵌入式圖表僅在添加方式及引用格式上與工作表圖表有所不同,而對(duì)圖表的設(shè)置基本類似。詳見下例。Set 嵌入表 =ActiveSheet.ChartObjects.Add(0,0,200,300) 在當(dāng)前工作表 (0,0)坐標(biāo)處添加寬 200 ,高 300 的嵌入式圖表嵌入表 .Chart.ChartType = xlColumnClustered
32、圖表類型為簇狀柱形圖嵌入表 .Chart.SetSourceData Source:=Sheets(1).Range(A2:B2),PlotBy:=xlRows 設(shè)置圖表數(shù)據(jù)來源With嵌入表 .Chart.HasTitle = False 無圖表標(biāo)題.Axes(xlCategory, xlPrimary).HasTitle = False .Axes(xlValue, xlPrimary).HasTitle = False End With無y無 x 軸標(biāo)題軸標(biāo)題五) 、工作表1、添加Sheets.Add before:=Sheets(1) 在第Sheets.Add after:=Sheet
33、s(Sheets.Count) 2、移動(dòng)ActiveSheet.Move before:=Sheets(2) 1 工作表前添加新工作表在最后工作表后添加新工作表將當(dāng)前工作表移動(dòng)至第2 工作表之前3、命名ActiveSheet.Name=工作表名 將當(dāng)前工作表命名為 工作表名 4、刪除可以用以下語句刪除當(dāng)前工作表。ActiveSheet.Delete但在刪除前 Excel 會(huì)自動(dòng)彈出提示框,需在用戶確認(rèn)后方可執(zhí)行刪除。 為避免這一干擾,可以先用以下語句關(guān)閉 Excel 的警告提示。Application.DisplayAlerts = False在刪除完成后,再重新打開Excel 的警告提示Ap
34、plication.DisplayAlerts = True六) 、工作簿.Excel 的宏對(duì)工作簿的操作主要為保存。Dim存盤文件名As StringActiveWorkbook.Save 保存當(dāng)前工作簿存盤文件名 = 工作表名 ActiveWorkbook.SaveAs Filename:=存盤文件名 當(dāng)前工作簿另存為 工作表名.xls在另存時(shí),若指定的存盤文件名不包含路徑,則保存在該工作簿的打開目錄下。而若此存盤文件已存在,也可用關(guān)閉Excel 警告提示的方法以免其自動(dòng)彈出提示框。63 、用 VBA 的幾個(gè)誤區(qū)1 、想通過 Excel+vba來編程發(fā)財(cái),不管怎么說,目前這種可能性很小。2
35、 、錄制宏后的代碼不進(jìn)行簡(jiǎn)化,這種情況初學(xué)者常犯;或者不屑于用錄制宏,這種相反。3 、喜歡用 .select 、 .copy 、 .active 等,如果不是迫不得已,還是不要用這些東西好。4 、不喜歡用公式、函數(shù),什么都喜歡用程序;活用公式函數(shù)是我們學(xué)EXCEL中重要的重點(diǎn),學(xué)會(huì)嵌套著用,很多事情都可以解決。譬如表1 的A1單元格如果要等于表2 的A 列中的某個(gè)單元格,很多人都是用程序來直接賦值,數(shù)量少這也可以,但如果數(shù)量很多的話,為何不試用一下 offset呢?偏移都指向同一個(gè)單元格,就當(dāng)是一個(gè)變量,改一下這個(gè)單元格的值,表 1 用 offset的單元格的值就全部改了。5 、設(shè)計(jì)輸入數(shù)據(jù)的
36、界面竟然用用戶窗口+ 文本框之類的東西,天,我為什么要用EXCEL ,原因之一不就是圖個(gè)方便嗎?!直接在工作表中操作就是輸入數(shù)據(jù)最好的方法,如果一些功能你不想給別人用,頂多你屏蔽掉吧。6 、關(guān)閉程序的時(shí)候很喜歡退出整個(gè)EXCEL ,這樣自我感覺更象一個(gè)完整的程序。其實(shí)完全有必要考慮其他用戶是否也在用EXCEL ,所以,必須做好一下判斷,不要自作聰明全部退出來,還幫忙把每個(gè)工作簿都保存一下。7 、不喜歡用 with ,總是 workbook().worksheet().range().*一行行排得挺整齊的,還說都用復(fù)制,其實(shí)也不麻煩。8 、總想把 VBA+EXCEL做得象一個(gè)程序一樣,其實(shí),就因
37、為它不獨(dú)立,所以才更加為我們喜愛,不是嗎?64 、用過 VB 的人都應(yīng)該知道如何聲明變量,在VBA 中聲明變量和 VB 中是完全一樣的!.使用Dim語句Dim a as integer聲明A 為整形變量Dim a聲明A 為變體變量Dim a as string聲明A 為字符串變量Dim a,b,c as currency聲明A,b,c為貨幣變量聲明變量可以是: Byte、Boolean、Integer、Long、Currency、Single、Double、Decimal(當(dāng)前不支持)、Date、 String(只限變長(zhǎng)字符串)、String * length(定長(zhǎng)字符串)、Object 、
38、Variant 、用戶定義類型或?qū)ο箢愋?。?qiáng)制聲明變量Option Explicit說明:該語句必在任何過程之前出現(xiàn)在模塊中。聲明常數(shù),用來代替文字值。Const 常數(shù)的默認(rèn)狀態(tài)是 Private 。 聲明 Public常數(shù)。 聲明 Private Integer常數(shù)。 在同一行里聲明多個(gè)常數(shù)。在 EXCEL97 中,有一個(gè)十分好的功能,他就是把鼠標(biāo)放置在一個(gè)有效數(shù)據(jù)單元格中,執(zhí)行該段代碼,你就可以將連在一起的一片數(shù)據(jù)全部選中。只要將該段代碼加入到你的模塊中。Sub My_SelectSelection.CurrentRegion.SelectEnd sub刪除當(dāng)前單元格中數(shù)據(jù)的前后空格。su
39、b my_trimTrim(ActiveCell.Value)end sub.使單元格位移sub my_offsetActiveCell.Offset(0, 1).Select當(dāng)前單元格向左移動(dòng)一格ActiveCell.Offset(0, -1).Select當(dāng)前單元格向右移動(dòng)一格ActiveCell.Offset(1 , 0).Select當(dāng)前單元格向下移動(dòng)一格ActiveCell.Offset(-1, 0).Select當(dāng)前單元格向上移動(dòng)一格end sub如果上述程序產(chǎn)生錯(cuò)誤那是因?yàn)閱卧癫荒芤苿?dòng),為了解除上述錯(cuò)誤,我們可以往sub my_offset之下加一段代碼on error res
40、ume next注意以下代碼都不再添加sub “代碼名稱 ” 和 end sub請(qǐng)自己添加!給當(dāng)前單元格賦值:ActiveCell.Value = 你好! 給特定單元格加入一段代碼:例如:在單元格中插入 Range(a1).value=hello又如:你現(xiàn)在的工作簿在sheet1上,你要往 sheet2的單元格中插入 1.sheets(sheet2).selectrange(a1).value=hello或 2.Sheets(sheet1).Range(a1).Value = hello說明:1.sheet2被打開,然后在將 “ HELLO放入到 A1 單元格中。2.sheet2不被打開,將
41、“ HELLO放入到 A1 單元格中。隱藏工作表隱藏 SHEET1 這張工作表sheets(sheet1).Visible=False顯示 SHEET1 這張工作表sheets(sheet1).Visible=True有時(shí)候我們想把所有的EXCEL 中的 SHEET 都打印預(yù)覽,請(qǐng)使用該段代碼,它將在你現(xiàn)有的工作簿中循環(huán),直到最后一個(gè)工作簿結(jié)束循環(huán)預(yù)覽。Dim my As Worksheet.For Each my In Worksheetsmy.PrintPreviewNext my得到當(dāng)前單元格的地址msgbox ActiveCell.Address得到當(dāng)前日期及時(shí)間msgbox date
42、 & chr(13) & time保護(hù)工作簿ActiveSheet.Protect取消保護(hù)工作簿ActiveSheet.Unprotect給當(dāng)前工作簿改名為liuActiveSheet.Name = liu打開一個(gè)應(yīng)用程序AppActivate (Shell(C:WINDOWSCALC.EXE)增加一個(gè)工作簿W(wǎng)orksheets.Add刪除當(dāng)前工作簿activesheet.delete打開一個(gè)文件Workbooks.Open FileName:=C:My DocumentsBook2.xls關(guān)閉當(dāng)前工作簿ActiveWindow.Close當(dāng)前單元格定為:左對(duì)齊Selection.Horizo
43、ntalAlignment = xlLeft當(dāng)前單元格定為:中心對(duì)齊Selection.HorizontalAlignment = xlCenter當(dāng)前單元格定為:右對(duì)齊Selection.HorizontalAlignment = xlRight當(dāng)前單元格為百分號(hào)風(fēng)格.Selection.Style = Percent當(dāng)前單元格字體為粗體Selection.Font.Bold = True當(dāng)前單元格字體為斜體Selection.Font.Italic = True當(dāng)前單元格字體為宋體20 號(hào)字With Selection.Font.Name = 宋體 .Size = 20End WithWi
44、th語句With對(duì)象.描述End With讓你的機(jī)器發(fā)出響聲BEEP清除單元格中所有文字、批注、格式、所有的東西!ActiveCell.Clear測(cè)試選擇狀態(tài)的單元格的行數(shù)MsgBox Selection.Rows.Count測(cè)試選擇狀態(tài)的單元格的列數(shù)MsgBox Selection.Columns.Count測(cè)試選擇狀態(tài)的單元格的地址Selection.Address讓所有的錯(cuò)誤不再發(fā)生ON ERROR RESUME NEXT產(chǎn)生錯(cuò)誤時(shí)讓錯(cuò)誤轉(zhuǎn)到另一個(gè)地方on error goto lcodel:.code刪除一個(gè)文件kill c:1.txt定制自己的狀態(tài)欄Application.Statu
45、sBar = 現(xiàn)在時(shí)刻 : & Time恢復(fù)自己的狀態(tài)欄Application.StatusBar = false在運(yùn)行期執(zhí)行一個(gè)宏Application.Run macro:=text滾動(dòng)窗口到a1的位置ActiveWindow.ScrollRow = 1ActiveWindow.ScrollColumn = 1定制系統(tǒng)日期Dim MyDate, MyDayMyDate = #12/12/69#MyDay = Day(MyDate)今天的年限D(zhuǎn)im MyDate, MyYearMyDate = DateMyYear = Year(MyDate)MsgBox MyYear產(chǎn)生一個(gè) inputb
46、oxInputBox (Enter number of months to add)得到一個(gè)文件名:Dim kk As Stringkk = Application.GetOpenFilename(EXCEL (*.XLS), *.XLS, Title:=提示:請(qǐng)打開一個(gè)EXCEL文件: )msgbox kk打開zoom顯示比例對(duì)話框Application.Dialogs(xlDialogZoom).Show.激活字體對(duì)話框Application.Dialogs(xlDialogActiveCellFont).Show打開另存對(duì)話框Dim kk As Stringkk = Applicatio
47、n.GetSaveAsFilename(excel (*.xls), *.xls) Workbooks.Open kk此段代碼尋找字符串中特定字符的位置,需要建立一個(gè)窗體,并在窗體中,放入TEXTBOX1,TEXTBOX2和 TEXTBOX3(3個(gè)文本框)及 COMMANDBUTTON1(按鈕 )Private Sub CommandButton1_Click()a = TextBox1.Textb = TextBox2.Textaa = Len(a) i = 1Dim YY As StringIf b = Then Exit Sub DoIf InStr(i, a, b, vbTextCompare) = 0 Then Exit Do kk = InStr(i, a, b, vbTextCompare)YY = YY & CStr(kk) & / i = kk + 1Loop While aa = i TextBox3.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東食品藥品職業(yè)學(xué)院《銅版畫技法2》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東石油化工學(xué)院《安裝工程計(jì)量與計(jì)價(jià)實(shí)訓(xùn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東農(nóng)工商職業(yè)技術(shù)學(xué)院《食品工程原理(含實(shí)驗(yàn)和課程設(shè)計(jì))》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東茂名幼兒師范專科學(xué)?!兜抡Z國(guó)家文學(xué)史及文學(xué)作品選讀》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東茂名健康職業(yè)學(xué)院《中國(guó)造園美學(xué)與實(shí)踐》2023-2024學(xué)年第一學(xué)期期末試卷
- 一年級(jí)數(shù)學(xué)(上)計(jì)算題專項(xiàng)練習(xí)集錦
- 大學(xué)生心理健康教育北京大學(xué)學(xué)習(xí)通測(cè)試及答案
- 【金版學(xué)案】2014-2021學(xué)年高中歷史人教版必修二-第六單元-第19課-戰(zhàn)后資本主義的新變化
- 《糖尿病性胃輕癱》課件
- 2021高考化學(xué)考點(diǎn)突破訓(xùn)練:5-3微粒之間的相互作用力和物質(zhì)的多樣性
- 地下連續(xù)墻拆除方案
- 二年級(jí)上冊(cè)數(shù)學(xué)期中試卷
- 拌和站危險(xiǎn)源清單及控制措施
- 沈晴霓《操作系統(tǒng)與虛擬化安全》courera課程答案總結(jié)
- 工程掛靠協(xié)議書模板
- 上海1933老場(chǎng)坊項(xiàng)目市場(chǎng)調(diào)研分析報(bào)告
- 龍門式數(shù)控火焰切割機(jī)橫向進(jìn)給系統(tǒng)的設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 拒絕轉(zhuǎn)院知情告知書.doc
- 草原上升起不落的太陽(五線譜)
- 建材公司財(cái)務(wù)管理制度
- 文丘里式氣氣混合器計(jì)算表[共2頁]
評(píng)論
0/150
提交評(píng)論