小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

科學(xué)網(wǎng)—電子表格VBA編程計(jì)算速成(2)

 你喜歡那個(gè) 2012-11-27

電子表格VBA編程計(jì)算速成(2)

已有 7289 次閱讀 2007-9-30 16:14 |個(gè)人分類(lèi):科普?qǐng)@地

第二章  學(xué)習(xí)VBA編程基礎(chǔ)
        學(xué)會(huì)了專(zhuān)業(yè)函數(shù)的編程,極大地方便了在電子表格里進(jìn)行函數(shù),工程、科學(xué)計(jì)算。但要實(shí)現(xiàn)復(fù)雜專(zhuān)業(yè)計(jì)算的自動(dòng)化,還需要學(xué)會(huì)對(duì)工作簿、工作表和單元格常用基本操作的編程——VBA編程:主要是學(xué)會(huì)工作簿、工作表運(yùn)行環(huán)境,選項(xiàng),計(jì)算,編輯,輸入,輸出等的代碼編寫(xiě)。
        在介紹常用編程代碼之前,還是先來(lái)認(rèn)識(shí)一下電子表格Excel的VBA代碼編寫(xiě)的基本知識(shí),這樣對(duì)看懂后面的常用編程代碼是很有必要的(當(dāng)然,是對(duì)像我這樣菜鳥(niǎo)級(jí)的人而言,對(duì)高手們來(lái)說(shuō)也許是多余的話)。
2.1 認(rèn)識(shí)VBA的對(duì)象、屬性、方法、事件
        電子表格VBA是面向?qū)ο蟮木幊陶Z(yǔ)言。因?yàn)樗?jiǎn)單、易學(xué),功能強(qiáng)大,很受編程愛(ài)好者的喜愛(ài)。
        既然電子表格VBA是面向?qū)ο蟮木幊陶Z(yǔ)言,首先就要弄清電子表格VBA的對(duì)象是什么?有哪些?對(duì)象的屬性、方法、事件是什么?有哪些?
        一,電子表格VBA的對(duì)象
        Excel應(yīng)用程序(Application)范圍內(nèi)的設(shè)置和選項(xiàng)(例如“工具”菜單上“選項(xiàng)”對(duì)話框內(nèi)的許多選項(xiàng));返回頂級(jí)對(duì)象的方法,例如 ActiveCell 活動(dòng)單元格和 ActiveSheet活動(dòng)工作表 等都是VBA的對(duì)象。請(qǐng)看幫助文件中Excel對(duì)象模型
        二,電子表格對(duì)象的屬性、方法和事件
        屬性是對(duì)象本身固有的特性。如:?jiǎn)卧襁@一對(duì)象,用于存儲(chǔ)計(jì)算數(shù)據(jù)和公式,它具有大小,字體,數(shù)據(jù)格式,填充色,邊框,底紋,保護(hù)等屬性。表示屬性格式為:
        對(duì)象名稱(chēng).屬性名稱(chēng)=屬性值,如:
        ActiveCell(1,2).Value= 100
        對(duì)象:ActiveCell(1,2);屬性:Value=;屬性值:100
        方法是對(duì)象能做的事,在VBA中,對(duì)象的方法就是對(duì)象本身包含的函數(shù)和過(guò)程。調(diào)用格式為:
        對(duì)象名稱(chēng).方法名稱(chēng),如:
        Range("G6").Select
        對(duì)象:Range("G6");方法:Select
        事件是發(fā)生在對(duì)象上的事情。在VBA中,事件是預(yù)先設(shè)置的,能被對(duì)象識(shí)別的動(dòng)作。如Load加載、Click鼠標(biāo)單擊、Workbook_Open()、Worksheet_Activate()激活工作表等。
        VBA編程就是在VBA集成開(kāi)發(fā)環(huán)境中通過(guò)編寫(xiě)代碼,激發(fā)某種事件,驅(qū)動(dòng)某種方法,以精心設(shè)計(jì)的流程,實(shí)現(xiàn)我們預(yù)期得到的結(jié)果輸出。
        三,電子表格VBA語(yǔ)句代碼的基本形式
        應(yīng)該知道:每個(gè)VBA語(yǔ)句是構(gòu)成VBA程序的基本單元;每個(gè)VBA語(yǔ)句都要實(shí)現(xiàn)一種功能,相關(guān)的一些語(yǔ)句組成完成特定任務(wù)的函數(shù)或過(guò)程、子過(guò)程,將許多函數(shù)、過(guò)程和子過(guò)程通過(guò)精心設(shè)計(jì)的流程組織起來(lái),實(shí)現(xiàn)我們的預(yù)定目標(biāo),這就是VBA程序。
        在理解了對(duì)象、屬性、方法、事件后,總結(jié)一下VBA語(yǔ)句的基本形式:
        1, 對(duì)象.屬性=”屬性值”
        如:ActiveCell(1,2).Value= 100   ‘ 對(duì)象ActiveCell(1,2)的Value值=100
        Sheet1.ScrollArea=”a1”    ‘ 對(duì)象Sheet1的ScrollArea滾動(dòng)范圍=”a1”
        2,對(duì)象.屬性.….屬性=”屬性值”
        如:在 Sheet1 的 A1 單元格中創(chuàng)建一個(gè)公式
        Worksheets("Sheet1").Range("A1").Formula = "=10*RAND()"
        3,對(duì)象.方法
        如:激活工作表sheet1
        Worksheets("Sheet1").Activate
        4,對(duì)象.屬性.方法
        如:將工作表 Sheet1 上單元格區(qū)域 A1:D4 中的公式復(fù)制到工作表 Sheet2 上的單元格區(qū)域 E5:H8 中。
        Worksheets("Sheet1").Range("A1:D4").Copy _
       destination:=Worksheets("Sheet2").Range("E5")
        5,對(duì)象.屬性.….方法
        如:將 工作表Sheet1 上單元格區(qū)域 A1:D10 中的字體大小設(shè)置為12。
        Worksheets("Sheet1").Range("A1:D10").Font.Size = 12
        6,常用事件:
     (1)Workbook_Open():每次打開(kāi)工作簿時(shí)發(fā)生。下例打開(kāi)工作簿時(shí),對(duì)窗口進(jìn)行格式化。
    Private Sub Workbook_Open(),
        Dim oldcaption as string '用oldCaption變量保存打開(kāi)本工作簿前的EXCEL標(biāo)題
        Sheet1.Activate                           ' 激活工作表1
        With ActiveWindow               ' 以下是對(duì)當(dāng)前活動(dòng)窗口的操作
        .DisplayGridlines = False ' 不顯示網(wǎng)格線
        .DisplayHeadings = False   ' 不顯示行號(hào)列標(biāo)
        .DisplayOutline = False ' 不顯示大綱視圖
        .DisplayZeros = False   ' 隱藏窗口0值★
        .DisplayHorizontalScrollBar = False   ' 隱藏水平滾動(dòng)條
        .DisplayVerticalScrollBar = False   ' 隱藏垂直滾動(dòng)條
        .DisplayWorkbookTabs = False   ' 隱藏工作表標(biāo)簽
        .WindowState = xlMaximized      ' 工作簿打開(kāi)時(shí)最大化    
End With                            '結(jié)束針對(duì)當(dāng)前活動(dòng)窗口的操作       
ActiveWorkbook.DisplayDrawingObjects = xlHide ' 隱藏繪圖工具欄
    With Application
        .DisplayFormulaBar = False ' 隱藏公式編輯欄
        .DisplayStatusBar = False ' 隱藏狀態(tài)欄
        .ShowWindowsInTaskbar = False ' 隱藏窗口任務(wù)欄工具欄
      End With
Application.CommandBars("Standard").Visible = False '隱藏標(biāo)準(zhǔn)工具欄
Application.CommandBars("Formatting").Visible = False '隱藏格式工具欄
    End Sub
    2) Worksheet_SelectionChange(ByVal Target As Range):工作表上的選定區(qū)域發(fā)生改變時(shí),產(chǎn)生本事件。下例滾動(dòng)工作簿窗口,直至選定區(qū)域位于窗口的左上角。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    With ActiveWindow
        .ScrollRow = Target.Row
        .ScrollColumn = Target.Column
    End With
End Sub
3)命令按鈕Click事件:在電子表格VBA編程計(jì)算中,最簡(jiǎn)單的啟動(dòng)方式就是在活動(dòng)工作表上設(shè)計(jì)一個(gè)命令按鈕,當(dāng)用鼠標(biāo)單擊命令按鈕,就啟動(dòng)設(shè)計(jì)的相應(yīng)計(jì)算。下例單擊工作表sheet1計(jì)算地形點(diǎn)坐標(biāo)的命令按鈕時(shí)引發(fā)的事件過(guò)程:(參見(jiàn)4.3)
Private Sub dxdzbButton1_Click() ‘ Private Sub 名稱(chēng)Buttonl_Click()
Dim xzan As String    ‘ 聲明變量xzan
Dim msg, style, title, response    ‘ 聲明變量msg, style, title, response
Application.AskToUpdateLinks = False    ‘ 取消Excel的更新鏈接
Sheet1.Visible = xlSheetVisible    ‘ 設(shè)置Sheet1(“地形點(diǎn)”)可見(jiàn)
Sheet3.Visible = xlSheetVisible    ‘ 設(shè)置Sheet3(“操作指南”)可見(jiàn)
Sheet2.Visible = xlSheetHidden    ‘ 設(shè)置Sheet2(“表面積”)不可見(jiàn)
Sheet1.Activate                 ‘ 激活Sheet1
……
End sub
(4)自定義菜單項(xiàng)事件:電子表格VBA編程計(jì)算的另一個(gè)啟動(dòng)方法是單擊自定義菜單項(xiàng)。(3)例中如是單擊的自定義“地形點(diǎn)坐標(biāo)計(jì)算”菜單項(xiàng),菜單項(xiàng)指定運(yùn)行宏為:dxdzb(),則引發(fā)的事件過(guò)程代碼為:
Private Sub dxdzb ()
Dim xzan As String
Dim msg, style, title, response
Application.AskToUpdateLinks = False
Sheet1.Visible = xlSheetVisible
Sheet3.Visible = xlSheetVisible
Sheet2.Visible = xlSheetHidden
Sheet1.Activate
……
End sub
 
2.2 在Excel VBA集成開(kāi)發(fā)環(huán)境中編寫(xiě)、學(xué)習(xí)代碼
我們看到,電子表格每個(gè)對(duì)象都有相應(yīng)的許多方法和事件,要記下那么多的方法、事件、屬性值,對(duì)一般人,特別是不懂英語(yǔ)的人來(lái)說(shuō)是不可能的。VBA集成開(kāi)發(fā)環(huán)境提供了對(duì)象和事件管理器,使編寫(xiě)代碼不再困難。
一,在Excel VBA集成開(kāi)發(fā)環(huán)境中編寫(xiě)代碼
如圖。
對(duì)象:Worksheet工作表;事件:Activate激活
過(guò)程:Private Sub Worksheet_Activate()……End Sub     ‘ 激活工作表過(guò)程
代碼:Sheet1.ScrollArea=”a1”    ‘ 對(duì)象:Sheet1;屬性ScrollArea滾動(dòng)范圍=”a1”
 

 

 這一代碼過(guò)程,實(shí)現(xiàn)打開(kāi)Worksheet工作表,Sheet1只有A1單元格是活動(dòng)的。執(zhí)行這一段代碼,可用來(lái)保護(hù)Sheet1,防止被人刪改。
在輸入代碼時(shí),當(dāng)在sheet1后,再輸入小數(shù)點(diǎn)“.”(不含“”),立即出現(xiàn)“屬性方法提示窗口”。你可以輸入你設(shè)計(jì)的屬性、方法的英語(yǔ)名稱(chēng),也可以拖動(dòng)提示窗口滾動(dòng)條查找你需要的屬性、方法,找到后點(diǎn)擊上屏。如果你對(duì)英語(yǔ)不懂、不精,你還可以讓《詞霸》來(lái)幫你查看、選擇。注:指點(diǎn)圖標(biāo)項(xiàng)表示屬性;綠方塊圖標(biāo)項(xiàng)表示方法。你看,是不是很方便!
,Excel VBA集成開(kāi)發(fā)環(huán)境中利用幫助系統(tǒng)學(xué)習(xí)編寫(xiě)代碼
在Excel中,那數(shù)不清的對(duì)象、屬性、方法、事件都可以通過(guò)自帶的幫助系統(tǒng)來(lái)隨時(shí)查詢。學(xué)會(huì)在VBA集成開(kāi)發(fā)環(huán)境中實(shí)時(shí)查詢對(duì)象、屬性、方法、事件的幫助,這是我們學(xué)習(xí)編程和正確編寫(xiě)代碼的極好途徑。
Excel VBA集成開(kāi)發(fā)環(huán)境中,要取得某個(gè)關(guān)鍵字的聯(lián)機(jī)幫助,最簡(jiǎn)單的方式就是將光標(biāo)指到該關(guān)鍵字上的任何地方,再按下F1即可。不要選擇此關(guān)鍵字。因?yàn)槿绻贿x擇關(guān)鍵字的一部分或者選了一個(gè)以上的字,就會(huì)找不到需要的幫助。如下3圖,是將光標(biāo)分別停在show、Private、End Sub后,按下F1鍵分別顯示的幫助窗口。
通過(guò)幫助窗口,我們就可以看到各有關(guān)屬性、方法、事件的具體含義、用法和示例。通過(guò)反復(fù)的日積月累,步步深入,您也就逐步從“菜鳥(niǎo)”變成了“鳳凰”。
值得注意的是:學(xué)海無(wú)涯, “有的放矢,學(xué)以致用”是我們學(xué)習(xí)的最便捷的原則,不要貪多求全,一口吃不了一個(gè)胖子。
 
 
 
 
 

  Excel VBA集成開(kāi)發(fā)環(huán)境中,還有一個(gè)對(duì)象瀏覽器,點(diǎn)擊對(duì)象瀏覽器圖標(biāo)即可打開(kāi)它。


 
對(duì)象瀏覽器”可讓您瀏覽工程中所有可獲得的對(duì)象并查看它們的屬性、方法以及事件。此外還可查看工程中可從對(duì)象庫(kù)獲得的過(guò)程以及常數(shù)。很容易顯示您所瀏覽的對(duì)象的聯(lián)機(jī)幫助,也可用對(duì)象瀏覽器”去搜索和使用您所創(chuàng)建的對(duì)象;其它應(yīng)用程序的對(duì)象也可用它來(lái)瀏覽。使用“對(duì)象瀏覽器”,請(qǐng)按照以下步驟執(zhí)行:
1. 在“工程/庫(kù)”列表中選定您所要查看的工程或程序庫(kù)名稱(chēng)。
2. 使用“類(lèi)”列表選定類(lèi);使用“成員”列表去選定類(lèi)或工程中的特定成員。
3. 查看在窗口底端的詳細(xì)資料區(qū)選定的工程或類(lèi)的信息。
4. 使用“幫助”按鈕顯示所選類(lèi)或成員的幫助主題。
       用好對(duì)象瀏覽器,是我們學(xué)習(xí)VBA編程的極好工具,是第一手的大教程。市面上雖有許多大部頭“教程”,但初學(xué)者能看的懂、用的上的好書(shū)實(shí)在是鳳毛麟角,無(wú)怪乎有的朋友驚呼“垃圾書(shū)”太多!真希望我們的專(zhuān)家、高手們多寫(xiě)一些深入淺出的,少些概念,多些具體示例,讓初學(xué)者能看的懂、用的上的好書(shū)。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多