當前位置:編程學習大全網 - 編程語言 - 我想學EXCEL的VBA基礎知識

我想學EXCEL的VBA基礎知識

VBA概述:VBA是Visual Basic For Application的縮寫,是VB在office中的運用。是基於Visual Basic For Windows發展而來的,VB For Windows是Microsoft於1992年推出的開發Windows應用程序的程序設計語言,由於基語法簡單,易學易用,所以深受用戶的歡迎。而VBA和VB For Windows大體相似。

在Office2000之前,VBA在Word,Excel,Access等Office系統軟件中的運用有些有同,但是到Office2000就統壹起來了。

Excel是第壹個包含有VBA的應用程序,自Office2000以後,Eexel,Word,PowerPoint,Access中已經有了統壹標準的宏語言VBA,其中Excel和Access的VBA最為成熟。

在Excel中VBA程序即可以存放有.xls中,也可以單獨以文本形式存放。對VBA的學習,用戶首先必須VB有壹定的了解(不過不必很專業,畢竟經常用Excel的用戶壹般是辦公人員,不可能是專業編程人員),然後結合宏記錄器學習。因為,宏記錄器可以記錄宏,用戶可以非常清楚了然VBA的很多知識。另外,如果不是功能很強大的VBA程序,那麽用宏記錄器就足夠了。打開密碼記錄器的方法,通過“工具->宏->錄制新宏”。另外,用戶可能用“工具->宏->宏...”來管理宏。用“工具->宏->VB 編輯器”或Alt+F11可以打開VB編輯器,在VB編程器,可以很方便地整個VB工程進行管理,可以方便地編寫VBA代碼,另外,用戶可以再點擊Alt+F11切換到Excel窗口。

VBA的使用過程:

1、創建壹個Excel文件。

2、創建壹個控件,然後雙擊控件或是右擊該控件,點擊“查看代碼”,就可以對該控件的某個事件,如click,keydown等。

進行編寫執行代碼了。創建控件的方法是,點擊“視圖->工具欄->控件工具箱”,打開“控件工具箱”欄,然後就可以直接拖動某個控件到Excel單元格中去。在Excel中窗口,添加的控件壹般是處於執行狀態的,如果要對這個控件進行編輯,除了第壹次建立的時候可以對它進行屬性編輯外,打開“控件工具箱”,也可以使控件處於編輯狀態,如果還不行,可以再添加壹個控件,然後已有的控件絕對會處於編輯狀態。當然,對控件修改完畢後,別忘了刪除剛才新添加的沒有用的控件。在編輯狀態中,妳可以右擊該控件,點擊“屬性”,那麽就可以打開屬性窗口,在這個窗口裏,妳可以很方便的對這個控件的名字,標題,大小等屬性進行編輯。

3、手動或用宏記錄器對該控件的某個事件進行編碼。宏記錄器簡單易用,不過強大的功能還是必須手動編寫VBA。

VBA對象介紹:

編寫VBA代碼的最關鍵在於靈活運用VBA對象,對這些VBA對象的屬性或方法進行操作。另外,妳也可以創建自定義函數,來對某些操作進行封裝。既然是VBA,編碼風格當然和VB相同,如果會VB,那麽只要對VBA的對象比較了解,就可以編寫功能強大的VBA程序;同樣,如果不會VB,那麽,只需要了解VBA的對象就夠了,因為它比較簡單易學。

以下分別討論VBA各對象對其屬性與方法:

在壹些可以包含其他對象的窗口對象中,有幾個特殊的屬性,其屬性值是當前活動對象,對它們,可以直接引用。

表1 壹些特殊的屬性

對象名 含義

ActiveWorkbook 當前工作簿,即如果妳打開了幾個Excel文件,那麽妳當然正在編輯的Excel文件即ActiveWorkbook

ActiveSheet 當前工作簿中的當前工作表,即當前編輯的Excel文件中正在編輯的工作表

ActiveCell 當前工作表中活動單元格

ActiveChart 當前工作簿中的活動圖表

Selection 當前被選定的對象

下面詳談各對象及它們的屬性和方法

壹、Application對象

此對象指Excel應用程序的工作環境。

<壹>屬性

1.Caption屬性

含義:Excel應用程序標題欄顯示的文本。

舉例:Application.caption=“船員管理系統”,如賦值Empty,則恢復Excel默認的標題欄。

2.Cursor屬性

含義:Excel中鼠標的形狀。

表2 Cursor屬性

屬性值 鼠標形狀

xlDefault 缺少型值,鼠標呈缺少形狀

xlWait 等待型值,鼠標呈不斷翻轉的沙漏形狀

xlNorthwestArrow 箭頭型值,鼠標呈標準箭頭形狀

xlIBeam 文本型值,鼠標呈“I”字形以等待用戶輸入文本

操作:Application.Cursor=xlWait等。

3、DisplayAlerts屬性

含義:用以確定是否顯示系統的應用提示和警告信息,如果不想顯示,則把些屬性設為false,反之亦然。

4、DisplayFormulaBar屬性

含義:用以確定是否顯示公式編輯欄

5、DisplayScrollBars屬性

含義:用以確定是否顯示Excel的滾動條

6、DisplayStatusBar屬性

含義:用以確定是否顯示Excel的狀態欄

7、EnableCancelkey屬性

含義:用以確定是否允許用戶中斷正在執行著的VBA程序。缺省情況下,在VBA程序執行過程中,用戶按下Ctrl+Break能夠中斷VBA程序的執行。此時此屬性即值為xlInterrupt。若要禁止中斷VBA程序,由賦值為xlDisabled;若需要VBA執行過程中遇到錯誤進中止,由賦值為xlErrorHandler

8、ScreenUpdating屬性

含義:用以確定是否顯示VBA程序的中間運算結果。

9、StatusBar屬性

含義:設置狀態欄的文本

10、ActiveWorkbook屬性

含義:如表1介紹。

11、ActiveSheet

含義:如表1介紹。

12、ActiveCell屬性

含義:如表1介紹。

13、ThisWorkBook屬性

含義:用以返回正在執行著VBA程序所在的工作簿對象。這不是當前工作簿。例如有多個工作簿打開時,ActiveWorkbook屬性返回當前工作簿對象,ThisWorkbook返回正在運行著VBA程序所在工作簿對象。

14、PathSeparator屬性

含義:返回文件文件路徑分隔符“\”,該屬性是壹個只讀屬性。

舉例:Dim strPath as String

strPath=Application.ThisWorkbook.Path&Application.PathSeperator

Workbooks.Open strPath&"myExcel.xls"

15、UserName屬性

含義:設置當前用戶名稱。缺省用戶是由Excel選項對話框的“常規”選項卡中“用戶姓名”決定的。用戶可以從“工具”菜單中選擇“選項”命令來打開選項並在“常規”選項卡的“用戶姓名”文本框中重新設置缺省的用戶名稱。

<二>方法

1、Calculate方法

含義:對Excel打開的工作簿中所有的公式進行重新計算。

2、Goto方法

含義:選擇工作簿中的壹個Range對象或壹個VBA過程,格式如下:

Application.Goto Reference,Scroll

Reference參數表示Goto方法的目的地,Scroll參數若為True,滾動條滾動以使Range對象出現在工作簿窗口左上角,為False,當前工作簿窗口不屬性變化。缺省值為Galse

舉例:Application.Goto Range("C3"),True

3、InputBox方法

含義:用於打開壹個輸入對話框,允許用戶輸入數據。格式如下:

Application.InputBox(prompt,title,left,top,helpFile,helpContextID,type)

prompt參數 用於設置輸入對話框的提示信息

title參數 用於設置輸入對話框的標題文字

default參數 用於設置輸入對話框的缺省輸入值

left和top參數 用於設置輸入對話框左上角的坐標值

helpFile參數 用於設置輸入對話框在線幫助的名稱

helpContextID參數 用於設置輸入對話框在線幫助主題的上下文標識號

type參數 用於設置輸入對話框輸入數據的類型。缺省情況下,為文本型

舉例:UserValue=Application.InputBox("請輸入數據","數據輸入",Type:=7)

4、Onkey方法

含義:按下某個或組合鍵時執行壹段VBA代碼。自己嘗試壹下就知道了,也可看壹下VB編輯器的提示(即輸入Applicatio.Onkey後,VB編輯器彈出的下拉提示。

二、Workbooks對象集

當前所有打開的工作簿對象的集合

<壹>屬性

1、Count屬性,只讀,返回Excel打開的工作簿數

<二>方法

1、Add方法,向工作簿對象集中壹個新的工作簿,相當於“文件->新建”命令。格式如下:

Workbooks.Add Template

2、Open方法,打開壹個指定的工作簿。格式看壹下VBA編輯器中的提示就行,太累了,不想寫得這麽全。

3、Close方法,關閉壹個工作簿文件

三、Workbook對象

代表壹個獨立的工作簿文件

<壹>屬性

1、ActiveSheet屬性,返回當前工作簿中的活動工作表對象

2、Author屬性,返回或設定工作簿的作者姓名,由此確定工作簿的所有者

3、Saved屬性,用於瓢工作簿文件是否做過修改。

<二>方法

1、Activate方法,用於霜壹個工作簿為當前活動工作簿,如,Workbooks("myOffice.xls").Activate

2、Close方法,用於關閉指定的工作簿

3、Save方法,用於保存指定的工作簿

4、SaveAs方法,用於另存為指定的工作簿

四、Worksheets對象集

代表當前工作簿所有的工作表(Worksheet)的集合。

<壹>屬性

1、Count屬性,返回當前工作簿中的的工作表的數量

<二>方法

1、Add方法,向工作表對象集中添加壹個新的工作表對象,格式如下:

Worksheets.Add Before,After,Count,Type

Before和After參數指哪壹個工作表之前或之後插入新工作表。取值為Worksheet

如:Worksheets.Add Before:=Worksheets("Sheet2"),則相當於在Sheet2工作表之前插入了壹個新的工作表

五、Worksheet對象

代表工作簿壹個獨立的工作表。

獲取某個工作表,可以用Worksheets("辦公費用"),也可以用Worksheets(3)之類的語句

<壹>屬性

1、Name屬性,設置或返回工作表對象的名稱

2、Visible屬性,確定是否隱藏某個工作表

<二>方法

1、Calculate法,對指定的工作表中的所有公式進行重新計算

2、Copy方法,用於復制指定的工作表,並放置在指定的位置,實際是壹個復制與粘貼並重的函數,

格式:Worksheet-Object.Copy Before,After

如Worksheet("Sheet2").Copy After:=Worksheets("辦公費用"),相當於把Sheet2工作表復制,並把它放置在名為“辦公費用”的工作表之後

3、Move方法,移動指定的工作表並放置在指定的位置,用戶同Copy方法,區別只天於復制與剪切之不同

4、Delete方法,無參數刪除指定的工作表,如Worksheet("Sheet2").Delete

5、Cell方法,獲取指定工作表指定行列的某個單元格

格式:Worksheet-Object.Cells(Row,Col),Row,Col為整型,行列值都從1開始

如Worksheet("Sheet2").Cell(1,1),相當於獲取Sheet2工作表的第壹行第壹列的單元格

五、Range對象

代表壹個半橋區域,可以由多個半橋組成,也可是由壹個單元格組成。

引用單元格可用以下兩種方法:

壹是使用單元格引用,如Range("A1"),Range("A1:C3")

二是使用單元格區域名稱,如Range("myRange")。

<壹>屬性

1、FormulaR1C1屬性,為指定的單元格或單元格區域建立和存儲公式,

如Range("C5").FormulaR1C1="=SUM(R[-4]C:R[-1]C)"

2、Value屬性,為指定的單元格或單元格區域賦值,如為多個單元格,則都賦為同樣的值

3、Cell屬性,以指定的單元格為苦戰來描述被引用的單元格,把指定的單元格視為第1行第1列

格式:Range-Object.Cells(Row,Col)

4、Offset,以指定的單元格為苦戰來描述被引用的單元格,把指定的單元格視為第0行第0列

格式:Range-Object.Cells(Row,Col)

5、Name屬性,返回或設定指定的單元格或單元格區域的名稱,然後在VBA中,可以直接用名稱為引用它

6、Count屬性,返回指定的單元格區域中包含的單元格的數目,只讀

7、CurrentRegion屬性,返回以某個單元格為基點的存儲有數據的壹個連結的單元格區域

<二>方法

1、Select方法方法,用於選擇指定的單元格區域,執行後,該單元格區域左上角的第壹個單元格成為活動單元格

如Range("A1:C3").Select,Range("A1:C3,D5:E6,A8:E8).Select

2、Activate方法,用於選擇指定的單元格並指定其成為活動單元格,當然只有該單元格區域左上角的第壹個單元格成為活動單元格。

3、AutoFit方法,調整選定的單元格區域所在行和列的行高與列寬,使其行高與列寬自動設定的最佳的高度與寬度。

如:Range("A4").CurrentRegion.Select

Selection.Rows.AutoFit

4、Clear方法,清除指定的單元格區域的內容,格式和批註,相當於“編輯->清除->全部”

如:Range("A4:C5").Clear

5、ClearContents方法,清除指定的單元格區域的內容,相當於“編輯->清除->內容”

6、ClearFormats方法,清除指定的單元格區域的內容,相當於“編輯->清除->格式”

7、ClearComments和ClearNotes方法,清除指定的單元格區域的內容,相當於“編輯->清除->批註”

8、Copy方法,將指定單元格區域中的數據庫復制到剪貼板或指定的目的單元格區域中

9、Cut方法,將指定單元格區域中的數據庫剪切到剪貼板或指定的目的單元格區域中

10、PasteSpecial方法,用於將剪貼板中復制或剪切下來的單元格區域中的數據庫有選擇地粘貼到指定的目的單元格區域中

格式:Range-Object.PasteSpecial Paste,Operation,ShipBlanks,Transpose

Paste參數規定了選擇體積類型的數據進行粘貼,如公式,內容,批註等,具體取值可參考VB編輯器中的提示

  • 上一篇:怎麽用相機拍?
  • 下一篇:視頻剪輯的開題報告(3)
  • copyright 2024編程學習大全網