excel2010如何開啟用戶窗體_第1頁
excel2010如何開啟用戶窗體_第2頁
excel2010如何開啟用戶窗體_第3頁
excel2010如何開啟用戶窗體_第4頁
excel2010如何開啟用戶窗體_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、excel2010如何開啟用戶窗體篇一:Excel 2010調(diào)出窗體工具欄 在以前的版本中“打開菜單>視圖>工具欄>窗體,調(diào)出窗體工具欄。” Excel 2010調(diào)出窗體工具欄 文件-"選項"里勾選"開發(fā)工具,開發(fā)工具中就有窗體了. 篇二:Excel VBA編程 認(rèn)識用戶窗體 Excel VBA編程 認(rèn)識用戶窗體 Excel作為一個直接面向用戶的軟件,必須具有強大的用戶交互功能。其實,在VBA中,已經(jīng)有了一些可以和用戶直接交互的函數(shù),如InputBox、MsgBox等。但是它們的功能都相當(dāng)有限,且界面不友好,在具體操作時還會受到諸多限制。例如,在

2、開發(fā)復(fù)雜的程序時,有可能需要用戶一次輸入很多數(shù)據(jù),在使用InputBox函數(shù)時只能提供一個數(shù)據(jù)的輸入,此時,就需要使用VBE提供的用戶窗體。 簡單來講,用戶窗體就是應(yīng)用程序的自定義對話框,使用用戶窗體有如下好外: ? 設(shè)計者可以按照自已的需要,采用最合適的控件、布局方式和輸入方式設(shè)計出對話框。這種設(shè)計模式給設(shè)計者提供了自由發(fā)揮空間,使得VBA程序的實現(xiàn)更加人性化,使用更加方便。 ? 遵循Windows的界面標(biāo)準(zhǔn),學(xué)習(xí)其成功界面設(shè)計的經(jīng)驗,可以向用戶提供一個專業(yè)的外觀,接受來自用戶的輸入和選擇,可以使用戶與程序的交流更簡單、更直面、更準(zhǔn)確。 在這里需要強調(diào)的是,Excel中用戶窗體的設(shè)計有兩種完

3、全不同的方法。一種方法是在基于工作表對象設(shè)計的用戶界面,另一種方法是在VBE環(huán)境是實現(xiàn)的。第一種方法在上一章已以介紹過了,而本章則是介紹基于VBE環(huán)境來創(chuàng)建用戶界面。 自定義的用戶窗體,可以是一個窗體(表單),也可以是一個對話框。因為他們都是用戶基于工作表數(shù)據(jù)應(yīng)用而設(shè)計的,窗體中并沒有限制用戶在使用過程中必須要做哪些操作,所以用戶窗體可以跟據(jù)這一特點,創(chuàng)建任意不同的用戶窗體,以滿足不同的設(shè)計需求。 在Excel中,用戶自定義窗體一般用于顯示和輸入數(shù)據(jù),使用用戶窗體來顯示所輸入的數(shù)據(jù),這樣,就可以將用戶與電子表格數(shù)據(jù)本身隔離,以保護(hù)數(shù)據(jù)的安全。而又由于數(shù)據(jù)是基于用戶窗體上的控件進(jìn)行輸入的,這些設(shè)

4、置好的控件在使用時會大大的加快數(shù)據(jù)的輸入、減少輸入性的錯誤。 VBE中窗體具有設(shè)計模式和代碼模式之分,在工作資源管理器窗口選擇窗體,可以在其工具欄或者通過右鍵切換窗體的設(shè)計模式和代碼模式。設(shè)計模式下可以通過鼠標(biāo)拖拽以及屬性調(diào)整來設(shè)計用戶窗體的外觀以及樣式。在代碼模式下,可以與使用一般的模塊一樣,定義變量、過程,并且可以響應(yīng)窗體和控件的事件。篇三:ExcelVBA用戶窗體編程基礎(chǔ) ExcelVBA用戶窗體編程基礎(chǔ) 2010-03-30 22:52:23| 分類: 閱讀67 評論0字號:大中小 訂閱 ExcelVBA用戶窗體編程基本 概述 當(dāng)應(yīng)用MsgBox函數(shù)和InputBox函數(shù)不能滿足與用戶

5、交互的需求時,您能使用用戶窗體來自定義對話框。您能使用用戶窗體來顯示所輸進(jìn)的數(shù)據(jù),您甚至能使用用戶窗體創(chuàng)建一個完全的用戶界面,而不會讓用戶 接觸到電子表格本身。 您在Windows對話框中所看到的大多數(shù)控件都能在用戶窗體中實現(xiàn)命令按鈕,選項按鈕,復(fù)選框,文 本框,組合框加上一些其它不常用的控件像圖像,日歷,等等。 本文先容了用戶窗體的基礎(chǔ)概念,并先容了使用用戶窗體的常用技巧。其中,也講授了一些最通用的思路。在文章中列舉了一個包括所有進(jìn)程的完全的示例文件,以及實現(xiàn)這些過程的代碼,讓您能在實踐中看到所 有工作的根本原理和辦法。 本文包含以下內(nèi)容: 根本的用戶窗體操作 用戶窗體和控件的屬性 一個用戶

6、窗體的性命周期 用戶窗體和控件的事件 問題1:如何在用戶窗體間傳遞數(shù)據(jù)? 問題2:如何找到我的窗體中的某類控件? 問題3:如何獲取數(shù)據(jù)到列表框中? 問題4:如作甚循環(huán)創(chuàng)建進(jìn)度條? 一個完全的用戶窗體綜合示例 基礎(chǔ)的用戶窗體操作 ? 創(chuàng)立一個窗體。打開VBE編纂器(選擇菜單“工具宏Visual Basic編纂器”或按Alt+F11組合鍵),選擇菜單“插進(jìn)用戶窗體”,或者在工程窗口中單擊右鍵,從彈出的快捷菜單中選擇“插入用戶窗 體”,即可創(chuàng)建一個窗體。 ? 添加控件。當(dāng)你創(chuàng)建了一個窗體后,將會顯示一個名為“控件工具箱”的浮動工具箱(如果沒有該工具箱的話,您可以從視圖菜單中找到它),其中顯示了最廣泛

7、的控件類型。單擊您想要的控件,拖動它到您的用戶 窗體中。 ? 更多的控件。有一些更多的可用的控件,您可以在控件工具箱中單擊右鍵,從中選擇“附加控件”,您能 添加日歷、電子表格、圖形,等等。 ? 添加事件程序。事件容許當(dāng)用戶對窗體和控件進(jìn)行操作時作出相應(yīng)的反映,事件程序要放置在用戶窗體模塊中,您能通過雙擊窗體或控件來打開代碼模塊窗口,或者在窗體或控件中單擊右鍵,從快捷菜單中選擇“查看代碼”來打開代碼模塊窗口,或者在工程窗口中的用戶窗體圖標(biāo)上單擊右鍵后選擇“查看代碼”來打開 代碼模塊窗口。然后,天平,在代碼模塊窗口中,對窗體或控件添加相應(yīng)的事件程序代碼。 ? 顯示窗體。打開窗體模塊,按F5鍵可以運

8、行宏程序,或者單擊工具欄中的運行按鈕,將顯示用戶窗體。 注意,在窗體模塊中按F5鍵并不會運行光標(biāo)所在的子進(jìn)程,而是運行用戶窗體自身。 ? 調(diào)試。和在宏程序中一樣,按F8鍵容許您逐語句運行代碼。 用戶窗體和控件的屬性 窗體和控件都有屬性(如尺寸、地位,等等),您能在設(shè)置窗體時改變這些屬性,并且它們中的大多數(shù)屬性也能夠在運行時通過代碼來轉(zhuǎn)變。在設(shè)置窗體時您所選擇的值是缺省值,在運行時您所作的變更僅當(dāng)窗體被裝載時有效。 兩個最主要的屬性是Name屬性和Value屬性: ? Name屬性可用于指定某個控件。您能通過控件的索引號指定控件,但這樣會難于懂得和調(diào)試,體視顯微 鏡,因此,使用名稱是更可取的。

9、? Value屬性是您所使用的實際輸入或者輸出的數(shù)據(jù)。在不同的控件中,該屬性值稍有差別。例如,選項按鈕控件和復(fù)選框控件的Value屬性值為True/False,而文本框控件的Value值則是該文本框所包括的文本。 Value屬性既可用于輸入,也可用于輸出。 例如: ?* txtFirstName.Text = Range("A1").Value Range("B1").Value = optVegetarian.Value ?* 一個好習(xí)慣 給您的窗體和控件起一個具有描寫性且分類明白的名字。您將會發(fā)明在每類控件名前加一個前綴是很有輔助的,例如,frm代表

10、窗體,opt代表選項按鈕,等等。這樣將會使您的代碼更易瀏覽,并且也會許可您使 用一些技巧,否則代碼將會很龐雜。 指定控件和窗體,以及Me要害字 當(dāng)在窗體代碼模塊中指定窗體中的控件時,您能通過名字指定他們,例如txtFirstName.Value=”John”。對 于在其它窗體中的控件,窗體名應(yīng)放在控件名之前,例如,frmEmployees.lstDepartments。 同樣的方式對在窗體模塊中所聲明的公共變量也是有效的這是窗體的基礎(chǔ)屬性(例如, frmImputs.AllDone)。注意,您不能在用戶窗體的代碼模塊中聲明全局變量。 Me是一個在用戶窗體的代碼模塊中指定該用戶窗體的快捷方式(例

11、如,Me.Height表現(xiàn)當(dāng)前用戶窗體的高 度)。又如,在用戶窗體UserForm1中指定TextBox1: ?* 在當(dāng)前用戶窗體模塊中 Me.TextBox1.Text = "Example" 在不同的模塊中 UserForm1.TextBox1.Text = "Example",測量投影儀; ?* 一個窗體的性命周期顯示和封閉 您可以在窗體窗口中或者是在窗體的代碼模塊中,按F5鍵來顯示您的窗體。如果在模塊中有一個Userform_Initialize過程,生物顯微鏡,那么在窗體顯示時,光譜投影儀,該過程將首先運行。 如果要使用代碼顯示和暗藏您的窗體(

12、例如,您可能想在frmIntro窗體中使用一個命令按鈕來隱躲frmIntro 窗體并顯示frmMain窗體),您應(yīng)當(dāng)使用Show方法(顯示窗體)和Hide辦法(隱蔽窗體)。 裝載和卸載 窗體顯示之前,必需裝載到內(nèi)存中。假如您顯示一個沒有裝載的窗體,該窗體將主動裝載。事實上,窗體中的任何引用或者變量或者控件或者屬性都將強迫裝載,并且觸發(fā)初始化事件。假如您想初始化窗體但不 顯示窗體的話,您能應(yīng)用如下方法裝載: Load frmMain 在隱蔽了窗體后,該窗體仍然被裝載。如果您再次顯示它,初始化程序不會再運行。(但Activate程序?qū)\行。)為了從內(nèi)存中肅清窗體,您必須卸載(unload)它。當(dāng)

13、用戶單擊關(guān)閉按鈕關(guān)閉窗體時,窗體將主動卸 載。 因此,窗體裝載和卸載的次序是:裝載(Load)顯示(Show)暗藏(Hide)卸載(Unload)。 卸載會肅清窗體模塊中的所有的變量相似于結(jié)束了一個過程。用戶已經(jīng)輸入的任何數(shù)值都將喪失,控件將恢復(fù)為您在屬性窗口中輸入的缺省值。如果您想保留它們的值,您須要在卸載窗體前進(jìn)行保留。 模式和無模式 窗體能在兩種“模式”之間顯示,即模式或者無模式,測量顯微鏡。模式窗體不容許用戶當(dāng)窗體顯示時在Excel中進(jìn)行其它的操作,像MsgBox對話框一樣。無模式窗體許可用戶在Excel中進(jìn)行其它操作,然后回到窗 體中來,熒光顯微鏡。 當(dāng)無模式窗體顯示時,代碼將在后臺

14、持續(xù)履行。您能使代碼暫時結(jié)束,直到窗體封閉后持續(xù)履行??墒褂?一個循環(huán)語句來檢討窗體是否已關(guān)閉: ?* Do Until frmOther.Visible = False DoEvents Loop ?* 缺省設(shè)置是模式窗體。一旦窗體作為模式窗體顯示后,您不能將它轉(zhuǎn)變?yōu)闊o模式窗體。您必需先暗藏該窗 體,然后再顯示它,并指定為無模式窗體。 無模式窗體僅對Excel2000及以上版本有效。 用戶窗體和控件的事件 事件許可窗體和控件對用戶所做的操作作出相應(yīng)的反映。您可能熟習(xí)ExcelVBA事件,如 Workbook_Open,Worksheet_Change等等。在Excel中,如果沒有事件,您能做

15、一些操作,但是在窗體 中,如果沒有事件的話,萬能工具顯微鏡,窗體幾乎沒什么作用。 ? 最常用的窗體事件包含窗體初始化(Intialize)、窗體激活(Activate)、窗體懇求關(guān)閉(QueryClose)、以及單 擊窗體(Click)。 ? 窗體中控件的常用事件包含更新后(AfterUpdate)、變更(Change)、單擊(Click)、輸入(Enter)、以及退出 (Exit)。 為了插入某對象的事件過程,您可以在該對象上單擊右鍵,在快捷菜單中選擇”查看代碼”,將會主動創(chuàng)立一個該控件尺度的事件過程。假如您想創(chuàng)建不同的事件過程,可以從VBE窗口頂部右側(cè)的下拉列表中選擇您想創(chuàng)建的事件進(jìn)程。還

16、有一個方式是,您可以先進(jìn)進(jìn)窗體代碼窗口,在代碼窗口頂部的左側(cè)的下拉列表 中選擇對象,在右側(cè)的下拉列表中選擇相應(yīng)的事件。 用戶窗體初始化 最主要的用戶窗體事件是初始化(Initialize)事件。初始化是產(chǎn)生在用戶窗體中的第一件事情只要用戶窗 體開端裝載,就會觸發(fā)初始化事件。 在這里,影像測量儀,您可以初始化變量和控件。例如,您能從電子表格中更新最新的數(shù)據(jù)到文本框中,改 變文本框的缺省值為今天的日期,等等。 懇求關(guān)閉和中斷 停止窗體的事件有兩個:要求關(guān)閉(QueryClose)和中斷(Terminate)。要求關(guān)閉事件首先發(fā)生,并且給您撤 消的機遇(不會關(guān)閉窗體);中止事件是終極的并不能撤消。

17、因此,事件的次序是:初始化(Initialize)懇求關(guān)閉(QueryClose)中斷(Terminate)。 激活用戶窗體 如果您不卸載窗體而只是隱蔽它,然后再顯示它,初始化事件不會再運行。但是,激活(Activate)事件將會產(chǎn)生。當(dāng)用戶窗體每次獲得焦點時,都會觸發(fā)激活事件。在每次顯示窗體時,該事件也會發(fā)生。如果您有 幾個窗體同時可見,那么當(dāng)您在這些窗體之間切換時,激活事件也會被觸發(fā)。 帶參數(shù)的事件 和Excel的事件一樣,一些窗體事件也帶有參數(shù),給您更多的關(guān)于怎樣觸發(fā)事件和為什么會觸發(fā)事件的信息。例如,UserForm_KeyDown事件將告知您按下了哪個按鍵。當(dāng)您在VBE中使用代碼窗口

18、頂部的下拉 菜單創(chuàng)件一個事件過程時,該過程會自動為它的所有參數(shù)設(shè)置適合的值。一些參數(shù)是只讀的,而另一些參數(shù)則可讀寫。例如,產(chǎn)生在用戶窗體關(guān)閉前的Userform_QueryClose事件,帶有一個撤消(Cancel)參數(shù),在該過程中設(shè)置Cancel=True將疏忽該事件,并且該窗體不會被關(guān)閉。 問題1:如何在用戶窗體間傳遞數(shù)據(jù)? 有兩種重要的在窗體間傳遞數(shù)據(jù)的方式:直接從窗體到窗體傳遞數(shù)據(jù)(這意味著這兩個窗體應(yīng)同時都被裝載 在內(nèi)存中);或者先將一個窗體中的數(shù)據(jù)存儲在某個處所,然后再從另一個窗體中調(diào)用這些數(shù)據(jù)。 可以或者是從“源數(shù)據(jù)”窗體或者是從“目的”窗體中傳遞數(shù)據(jù),但必需在“源數(shù)據(jù)”窗體被卸

19、載前進(jìn)行。注意, 當(dāng)您指定另一個窗體中的控件時,必須加上該窗體的名字,例如: ?* txtName.Value = frmTheOtherForm.txtName.Value ?* 直接從窗體到窗體傳遞數(shù)據(jù)會觸發(fā)另一窗體的初始化事件(除非該窗體可見),由于您在引用該窗體中的控件的屬性。如果該初始化事件過程包含有顯示窗體的代碼,或者調(diào)用其它的子過程,金相顯微鏡,這將觸發(fā) 一系列的代碼,導(dǎo)致難于調(diào)試,因此,建議僅對相當(dāng)簡略的窗體使用這種方式。 相比擬而言,將數(shù)據(jù)存儲在變量中會更機動和便于把持。數(shù)據(jù)能被存儲在公共變量中、單元格中(當(dāng)封閉文 件時能被保留)、或工作表命名區(qū)域中。 下面的綜合示例中包含有

20、這兩種方式傳遞數(shù)據(jù)的例子。 問題2:如何找到我的窗體中的某類控件? 您能在窗體中所包括的控件之間進(jìn)行循環(huán),選擇那些適合類型的控件,并在這些控件中利用相應(yīng)的代碼。 可用如下幾種方法進(jìn)行處置:應(yīng)用TypeName函數(shù)、TypeOf運算符、或者控件名字。 TypeName() TypeName函數(shù)返回一個字符串,例如,文本框為”TextBox”,命令按鈕為”CommandButton”等等。控件的類型名稱一般與控件的缺省名或題目雷同,但不是數(shù)字。例如,當(dāng)您添加一個新的文本框到您的窗體中, 缺省設(shè)置命名為TextBox1。 TypeOf TypeOf是斷定對象類型的很好的方法。引用了對象庫之后,它能直

21、接返回該對象的類型而不是字符串。您 能通過對象閱讀器找到庫和一個對象的類型。例如,文本框的類型是MsForms.Textbox。 TypeOf重要的上風(fēng)在于使您的代碼更易調(diào)試。當(dāng)您試圖編譯模塊時能捕捉類型,并且TypeOf支撐智能辨 認(rèn)開端輸入“If TypeOf ctl Is”,接著您將會獲得一個帶有所有可用的選擇的下拉列表。 “If TypeOfIsThen”是If語句的一類特別的語句,其先容在VBA輔助文檔中的If語句中。 控件名字 如果您按同一的規(guī)矩命名了您的控件,您能使用名稱(Name)屬性來識別它們,并能應(yīng)用一些技巧。應(yīng)用Left函數(shù),可以非常機動的辨認(rèn)一組子文本框,例如,在窗體中

22、有10個文本框,其名稱分辨為txtTeamName、txtTeamNumber、txtMember1、txtMember2、txtMember8,您能使用這種方法辨認(rèn)并清空名字中 所有以”txtMember”開頭的文本框。 例子 在下面的例子中有三個作用相同的If語句(假設(shè)您的文本框名字都是以”txt”開頭): ?* Dim ctl As Control For Each ctl In Me.Controls If TypeOf ctl Is MSForms.Textbox Then 或者 If TypeName(ctl) = "TextBox" Then 或者 If Le

23、ft(ctl.Name, 3) = "txt" Then 對文本框進(jìn)行操作 ctl.Text = "Hello"End If Next ctl ?* 下面的綜合示例中也有一個例子。 問題3:如何獲取數(shù)據(jù)到列表框中? 您可以通過下面所介紹的三種方式為列表框獲取數(shù)據(jù),電子天平。 RowSource屬性 您能將列表框直接與工作表上的一個單元格區(qū)域相鏈接,這與工作表中的列表框雷同。在該區(qū)域中的任何變化將會立即使列表框相應(yīng)變更,但在列表框中的數(shù)據(jù)是只讀的,您不能通過轉(zhuǎn)變列表框中的項目來改變 工作表中的內(nèi)容,分光光度計。 Note that the parameter for RowSource is a string and not a range: 注意,RowSource參數(shù)是一個字符串,而不是一個單元格區(qū)域: ?* lstNames.RowSource = Range("Names&

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論