




已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
VBA入門教程VBALesson1 程序說明:幾種用VBA在單元格輸入數(shù)據(jù)的方法:Public Sub Writes()1- 2 方法,最簡單在 中輸入單元格名稱。1 A1 = 100在 A1 單元格輸入100。2 A2:A4 = 10在 A2:A4 單元格輸入10。3- 4 方法,采用 Range( ), 中輸入單元格名稱。3 Range(B1) = 200在 B1 單元格輸入200。4 Range(C1:C3) = 300在 C1:C3 單元格輸入300。5- 6 方法,采用 Cells(Row,Column),Row是單元格行數(shù),Column是單元格欄數(shù)。5 Cells(1, 4) = 400在 D1 單元格輸入400。6 Range(Cells(1, 5), Cells(5, 5) = 50在 E1:E 5單元格輸入50。End Sub你點(diǎn)選任何單元格,按 Selection 按鈕,則則所點(diǎn)選的單元格均會被輸入文字 Test。Public Sub Selection1() Selection.Value = Test在任何你點(diǎn)選的單元格輸入文字 Test。End Sub觀看本程序的方法:粗體文字為程序,其它字體均為說明文字。按快捷鍵 Alt+F11即可看到程序。VBALesson2 程序說明:幾種如何把別的工作表 Sheet4 數(shù)據(jù),讀到這個工作表的方法:在被讀取的單元格前加上工作表名稱Sheet4。Public Sub Writes()1- 2 方法,最簡單在被讀取的 前加上被讀取的工作表名稱 Sheet4。1 A1 = Sheet4.A1把Sheet4 A1 單元格的數(shù)據(jù),讀到 A1單元格。2 A2:A4 = Sheet4.B1把 Shee4 工作表單元格 B1 數(shù)據(jù),讀到 A2:A4 單元格。3- 4 方法,在被讀取的工作表 Range( )的 Range 前加上被讀取的工作表名稱Sheet4。3 Range(B1) = Sheet4.Range(B1)把 Shee4工作表單元格 B1 數(shù)據(jù),讀到B1 單元格。4 Range(C1:C3) = Sheet4.Range(C1)把 Shee4 工作表單元格 C1 數(shù)據(jù),讀到 C1:C3 單元格。5- 6 方法,在被讀取的工作表 Cells(Row,Column),Cells 前加上被讀取工作表名稱 Sheet4。5Cells(1, 4) = Sheet4.Cells(1, 4)把 Shee4 工作表單元格 D1 數(shù)據(jù),讀到 D1 單元格。6 Range(Cells(1, 5), Cells(5, 5) = Sheet4.Cells(1, 5)把 Shee4 工作表單元格 E1 數(shù)據(jù),讀到 E1:E 5單元格。End Sub你點(diǎn)選任何單元格,按 Selection 按鈕,則所點(diǎn)選的單元格均會被輸入 Shee4 工作表單元格 F1 數(shù)據(jù)。Public Sub Selection1() Selection.Value = Sheet4.F1把 Shee4 工作表單元格 F1 數(shù)據(jù),讀到任何你點(diǎn)選的單元格。End SubVBALesson3 程序說明:如何利用 Worksheet_SelectionChange 輸入數(shù)據(jù)的方法。Private Sub Worksheet_SelectionChange(ByVal Target As Range)Target = 100End SubTarget 指的是你鼠標(biāo)所選的單元格,Worksheet_SelectionChange() 事件的參數(shù)。可以是一個也可以是好幾個單元格。Range 是 Excel 特有的變量形態(tài),叫范圍。Target As Rang 是把 Target 這個參數(shù)設(shè)定為 Range 變量形態(tài)。Target = 100 是把你點(diǎn)選的單元格輸入數(shù)字100。VBALesson4 程序說明:如何利用 Worksheet_SelectionChange 在限定的單元格輸入數(shù)據(jù)的方法。Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Row = 2 And Target.Column = 2 Then Target = 100 End IfEnd SubIf .Then . End If 這是我們學(xué)的這一個邏輯判斷語句。Target.Row = 2,指的是鼠標(biāo)選定的單元格的行大于或等于 2。Target.Column = 2 ,指的是鼠標(biāo)選定的單元格的欄等于 2。If Target.Row = 2 And Target.Column = 2 Then 指的是只有在Target.Row = 2及Target.Column = 2二個條件成立時。就是 (Target.Row = 2) 為True及(Target.Column = 2)為True時,才執(zhí)行下面的程序Target=100,也就是 B 欄第二行及以下行用鼠標(biāo)被點(diǎn)選時,才會被輸入100,其它單元格則不被輸入數(shù)據(jù)。VBALesson5 程序說明:比較 Worksheet_SelectionChange() 與用按鈕CommandButton1_Click() 來執(zhí)行程序二者的方法與寫法有何不同。Worksheet_SelectionChange()事件Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Row = 2 And Target.Column = 2 Then Target = 100 End IfEnd Sub按鈕CommandButton1_Click()Private Sub CommandButton1_Click()If ActiveCell.Row = 2 And ActiveCell.Column = 3 Then ActiveCell = 100End IfEnd Sub二者執(zhí)行方法最大的地方,在于 Worksheet_SelectionChange() 是自動的,你不用了解他是怎么完成工作的。按鈕CommandButton1_Click() 是人工的,比 SelectionChange()多一道手續(xù),就是要去按那接鈕,程序才會執(zhí)行。SelectionChange() 有一個參數(shù) Target 可用;CommandButton1_Click ()沒有。所以我們要用 ActiveCell 內(nèi)定函數(shù)來取代Target,ActiveCell 與 Target最大的不同點(diǎn)他只能指定一個單元格。就是你選取多個單元格也只有最上面的單元格會加上數(shù)據(jù);用 Selection 取代 ActiveCell, 用法就跟 Target 一樣了。VBALesson 6 程序說明:完整的 If.Then End 邏輯判斷式。Private Sub Worksheet_SelectionChange(ByVal Target As Range) IfTarget.Row = 2 And Target.Column = 2 Then Target = 200 ElseIfTarget.Row = 2 And Target.Column = 3 Then Target = 300 ElseIfTarget.Row = 2 And Target.Column = 2 Then Target = 400Else Target = 500End IfEnd Sub這是個完整的 If 邏輯判斷式,意思是說,假如 If 後的判斷式條件成立的話,就執(zhí)行第二條程序,否則假如 ElseIf 後的判斷式條件成立的話,就執(zhí)行第四條程序,否則假如另一個 ElseIf 後的判斷式條件成立的話,就執(zhí)行第六條程序。Else 的意思是說,假如以上條件都不成立的話,就執(zhí)行第八條程序。他的執(zhí)行方式是假如 IF 的條件成立的話,就不執(zhí)行其它ElseIf 及Else 的邏輯判斷式,假如 If 後的條件不成立的話才會執(zhí)行 ElseIf 或 Else 邏輯判斷式。第二個 ElseIf後的條件因?yàn)榕c IF 後的條件一樣,所以這個判斷式後面的 Target=400 將是永遠(yuǎn)無法執(zhí)行到的程序。VBALesson 7 程序說明我們?yōu)槭颤N要用變數(shù)。Private Sub Worksheet_SelectionChange(ByVal Target As Range)Dimi ,jAs IntegerDimkAs Rangei=Target.Rowj=Target.ColumnSetk=Target Ifi= 2 Andj= 2 Then k=200 ElseIfi = 2Andj = 3Then k=300 ElseIfi = 2Andj = 4Then k=400 Else k=500 End IfEnd Sub 跟VBALesson 6比較,程序是不是明朗多了,在前課重復(fù)的用 Target.Row,Target.Column及Target來寫程序是不是有一點(diǎn)煩。用變量的第一個好處大家馬上感覺得出來,就是可以簡化程序。使用變量前,你得先宣告變量。宣告變量的方法是在 Dim 后面寫上變量i As 后面接上變量的形態(tài) Integer。Dimi ,jAs Integer 就是宣告i 與 j 為整數(shù)變量,這是同時宣告二個變量i 與 j 所以要在二個變量間加個 , 號。DimkAs Range 是宣告 k 為范圍資料形態(tài),Range這是 Excel 特有的資料形態(tài)。i=Target.Row是把當(dāng)前單元格的行數(shù),指定給變量 i。j=Target.Column 是把當(dāng)前單元格的欄數(shù),指定給變量 j。Setk=Target 是把當(dāng)前的單元格,指定給變量 k。用像i與 j這樣簡單的變量,在程序的前面你可能還記得i或j 代表著什厶。程序?qū)戦L了,你可能忘記 i 或j 代表著什厶。所以最好的方法是用比較有意義的代號,來為變量命名如 iRow 或 iCol 來取代 i及 j 。VBALesson 8 程序說明體會一下Worksheet_Change()事件。Private Sub Worksheet_Change(ByVal Target As Range)Dim iRow, iCol As IntegeriRow = Target.RowiCol = Target.Column If iRow = 2 And iCol = 2 And Target Then Application.EnableEvents = False Cells(iRow, iCol + 1) = Cells(iRow, iCol) * 2 Application.EnableEvents = True ElseIf iRow = 2 And iCol = 2 And Target = Then Cells(iRow, iCol + 1) = Else Cells(iRow, iCol + 1) = End IfEnd Sub 前幾個教程都是用Worksheet_SelectionChange 事件來舉例子,大家應(yīng)該能體會他是怎厶一回事了吧。這個教程就是要讓你來體會什厶是Worksheet_Chang()事件。因?yàn)檫@二個事件在VBA都是非常有用的,所以一定要了解。 簡單的說,前者是你鼠標(biāo)移動到那個單元格,就觸發(fā)那個事件的執(zhí)行。後者是要等到你點(diǎn)選的單元格,數(shù)有了改變才會觸發(fā)事件的執(zhí)行。二者執(zhí)行的時機(jī)一前一後。Target 是代表限定當(dāng)前的單元格要是有數(shù)的,才會執(zhí)行以下三行的程序。Cells(iRow, iCol + 1) = Cells(iRow, iCol) * 2,是你在 B 欄輸入數(shù)時,C 欄將可得到 B 欄二倍的數(shù)。Target = 是限定當(dāng)前的單元格要是沒有數(shù)的,才會執(zhí)行以下一行的程序。Cells(iRow, iCol + 1) = ,是把 C 欄的數(shù)清成空格。Application.EnableEvents = False與Application.EnableEvents = True,這是個成雙的程序,當(dāng)你用了前者記得在執(zhí)行其他程序後要寫上後面的程序。它的目的在抑制事件連鎖執(zhí)行。簡單的說就是,在 B 字段所觸發(fā)的事件,不愿在其它單元格再觸發(fā)另一個Worksheet_Change()事件。VBALesson 9 程序說明體會一下Worksheet_Change()事件連鎖反應(yīng)。Private Sub Worksheet_Change(ByVal Target As Range)Dim iRow As IntegeriRow = Target.Row Application.EnableEvents = False Cells(iRow, 3) = Cells(iRow, 3) + Cells(iRow, 2) Application.EnableEvents = TrueEnd Sub Private Sub Worksheet_Change(ByVal Target As Range)Dim iRow As IntegeriRow = Target.Row Application.EnableEvents = False Cells(iRow, 3) = Cells(iRow, 3) + Cells(iRow, 2) Application.EnableEvents = TrueEnd Sub這個程序的目的是要在 B2 輸入新的數(shù)時,C2 會將 B2 輸入的新數(shù)加上 C2 原有的數(shù)呈現(xiàn)在 C2 上。照上面有加上Application.EnableEvents = False 程序執(zhí)行當(dāng)然沒問題?,F(xiàn)在你在 Application.EnableEvents = False 與 Application.EnableEvents = True 前加上 看看。程序前加上 的目的是要使 之后的文字變成說明文字,程序執(zhí)行時是會跳過說明文字,不執(zhí)行說明文字的內(nèi)容。程序前加上 符號后,文字會變成綠色。執(zhí)行第二個程序時,你將發(fā)現(xiàn) C2 不會按你所要求的,呈現(xiàn)結(jié)果。這就是所謂的事件連鎖反應(yīng)。VBALesson 10 程序說明體會一下Worksheet_Activate()事件。這個程序的目的是要大家體會一下 Worksheet_Activate() 事件的意義與用法,大家暫且不用去了解事件的程序代碼。我們在 出毛登記表工作表 K欄打勾選取我們要的數(shù)。當(dāng)打開 發(fā)毛單 工作表時, 出毛登記表 工作表 K欄有打勾的那一行數(shù)自動就復(fù)制至 發(fā)毛單 工作表。這樣的做法可省去我們做一個按鈕,用人工的方法將數(shù)復(fù)制至 發(fā)毛單 工作表。但有個後遺癥,那就是每次打開 發(fā)毛單 工作表時Excel一定會執(zhí)行這個程序,增加Excel 的工作量。 VBALesson 11 程序說明體會一下Worksheet_Deactivate() 與 Worksheet_BeforeDoubleClick()事件。Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)Cancel = TrueSheet3.Visible = xlSheetVeryHiddenEnd Sub這個程序的目的是要大家體會一下 Worksheet_Deactivate() 與 Worksheet_BeforeDoubleClick() 事件的意義與用法,大家暫且不用去了解事件的程序代碼。與 VBALesson 10 教程 Sheet3 的 Worksheet_Activate() 相同的程序,寫在 Sheet1 的 Worksheet_Deactivate()事件上。一樣可達(dá)成我們在 VBALesson10 所要達(dá)成的目的。那我們應(yīng)把程序?qū)懺?Sheet3 的 Worksheet_Activate() 事件上,或是寫在 Sheet1 的 Worksheet_Deactivate() 事件上呢?依這功能需求當(dāng)然還是寫在 Sheet3 的 Worksheet_Activate() 事件上比較合。因?yàn)榧偃缒銖?出毛登記表 工作表切到 說明 工作表,也會觸發(fā)Worksheet_Deactivate() 的執(zhí)行,徒增 Excel 的工作量。Worksheet_BeforeDoubleClick() 事件有二個參數(shù),Target 以前介紹過了,另一個參數(shù) Cancel 是做什厶用途的呢?原來我們在單元格 DoubleClick 時會變成編輯狀態(tài) 。假如我們把 Cancel 設(shè)定成 True 時,則你連按鼠標(biāo)二次時,單元格不會變成編輯狀態(tài)。就像這個 Worksheet_BeforeDoubleClick() 事件,我們就是把單元格 DoubleClick變成編輯狀態(tài)功能 Cancel 掉。并把 Sheet3 隱藏起來。說明工作表 Worksheet_BeforeDoubleClick() 的 Cancel 參數(shù)是設(shè)定 True;出毛登記表工作表 Worksheet_BeforeDoubleClick() 的 Cancel 參數(shù)是設(shè)定 False,你用鼠標(biāo)連按二次就可體會設(shè)定成 True 與 False 的不同。VBALesson 12 程序說明體會一下 Worksheet_BeforeRightClick () 事件。Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)If Not Application.Intersect(Target, Range(D8) Is Nothing Then Cancel = True MsgBox (Target is Range D8and Cancel is True !)Else Cancel = FalseEnd IfEnd Sub這個程序的目的是要大家體會一下Worksheet_BeforeRightClick () 事件的意義與用法。Worksheet_BeforeRightClick () 事件也有二個參數(shù),Target 以前介紹過了,另一個參數(shù) Cancel 是做什厶用途的呢?這個 Cancel 與前一個教程 Worksheet_BeforeDoubleClick () 的 Cancel 是有所不同的。這個 Cancel 假如設(shè)定成 True 的話,將屏閉掉鼠標(biāo)右鍵的菜單。你可以在VBALesson 12工作表 的 D8 單元格 與 D12 單元格,按鼠標(biāo)右鍵試看看有何不同。在 D12 按鼠標(biāo)右鍵將呈現(xiàn)正常的右鍵菜單;在 D8按鼠標(biāo)右鍵將呈現(xiàn)一個對話框并且屏閉掉右鍵菜單VBALesson 13 程序說明動腦時間。Worksheet 的事件計有如下七種1、Worksheet_Activate()2、Worksheet_BeforeDoubleClick ( )3、Worksheet_BeforeRightClick ( )4、Worksheet_Calculate ( )5、Worksheet_Change ( )6、Worksheet_FollowHyperlink ( )7、Worksheet_SelectionChange ( )1、前面幾個教程都是我給答案,這次希望大家給我答案。2、VBALesson 13 有個自動篩選的數(shù),請大家告訴我如何去補(bǔ)捉自動篩選的事件。3、也就是當(dāng)你去按那篩選的按鈕,如何讓那對話框彈出來。4、Worksheet 的事件計有如上七種,我在事件上均寫上程序碼。5、利用這七個事件中的一個,請你告訴我,你去按那篩選的按鈕,將彈出那個對話框。6、提示你除非你在工作表動個手腳,否則是彈不出對話框的。請教sheet2,sheet3等的數(shù)據(jù)來自于sheet1,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025屆山西省祁縣二中物理高一下期末預(yù)測試題含解析
- 2025年江蘇省蘇州市陸慕高級中學(xué)物理高二第二學(xué)期期末綜合測試模擬試題含解析
- 2025屆寧夏銀川市第六中學(xué)高二物理第二學(xué)期期末達(dá)標(biāo)測試試題含解析
- 阿壩市重點(diǎn)中學(xué)2025年物理高二下期末復(fù)習(xí)檢測模擬試題含解析
- 2025屆山東省威海市二中物理高二第二學(xué)期期末監(jiān)測模擬試題含解析
- 湖北省棗陽市白水高中2025年高一物理第二學(xué)期期末考試試題含解析
- 中職學(xué)生獎學(xué)金管理辦法
- 幼兒園內(nèi)部會計管理辦法
- 核銷置換貸款管理辦法
- 如何寫學(xué)習(xí)小組管理辦法
- 護(hù)理核心制度考試試卷(附答案)
- 尾礦工安全培訓(xùn)
- 西安高新區(qū)管委會招聘筆試真題2024
- 2025年中國工商銀行招聘筆試備考題庫(帶答案詳解)
- 研發(fā)項(xiàng)目工時管理制度
- 浮選藥劑安全管理制度
- 技術(shù)異化的解放路徑-洞察及研究
- DB33∕642-2019 熱電聯(lián)產(chǎn)能效、能耗限額及計算方法
- 考試錄用公務(wù)員筆試監(jiān)考工作培訓(xùn)
- GM∕T 0036-2014 采用非接觸卡的門禁系統(tǒng)密碼應(yīng)用指南
- 內(nèi)蒙古高中畢業(yè)生學(xué)籍表畢業(yè)生登記表學(xué)年評語表成績單身體健康檢查表完整版高中檔案文件
評論
0/150
提交評論