




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
VBA入門—獻(xiàn)給在這里得到幫助但看不懂代碼的朋友(已建電梯VBA入門指 2、初識(shí)VBA(續(xù) 3、便于對(duì)“類”進(jìn)行理解的只言片 此為EXCELHOME 先生在2009年年關(guān)不辭辛勞進(jìn)行的教學(xué)成果在此全面摘錄下來,做成 以方便大家【2009.1.16】初識(shí)VBA【2009.1.17】初識(shí)VBA(續(xù))【2009.1.18】初識(shí)VBA(續(xù))【2009.1.19】代碼起步——關(guān)鍵字(續(xù))...(續(xù))...(續(xù))...(續(xù))...(續(xù))...(續(xù))...【2009.1.30】代碼起步——程序...【2009.1.31】代碼起步——程(續(xù))...【2009.2.1】代碼起步——程(續(xù))...1、【2009.1.16】初 今天,陽(yáng)光明媚,清晨剛到,泡好香茗一杯,便開始構(gòu)思,該如何組既然題目是初識(shí)VBA,那么 先給大家一個(gè)直觀的感受——VBA?,往往在一些EXCEL的 個(gè),名字叫“控件工具箱”,從左往右屬第三個(gè)按鈕,名字叫“查看代到吧?最上面的幾行,和EXCEL以及每一個(gè)微軟平臺(tái)下的應(yīng)用程序都一樣,總歸是2、初識(shí)VBA(續(xù))所謂OOP就是指ObjectOrientedProgramming,即面象的程序設(shè)計(jì)方法,這種程序設(shè)計(jì)思想主要是相對(duì)于以前的面向過程的程序設(shè)計(jì)方法而言的。下面出來的接近現(xiàn)實(shí)形態(tài)描述的對(duì)象思想?yún)s讓整個(gè)設(shè)計(jì)理論提升了一個(gè)新的層OOPOOP3、便于對(duì)“類”進(jìn)行理解的只言片類是抽象的,不僅僅在程序中有,生活中到處都是你的衣服是按照春夏秋冬分門別類整理存放的,到超市購(gòu)物,商品也是按各種大類,小類類就是分類、種類的類是人為的、按照一定的特性進(jìn)行區(qū)分的一組對(duì)象(大白話就是“東西”)你我也都是一“類”生物類--》動(dòng)物類--》人類--》會(huì)使用電腦的那一類人--》會(huì)用EXCEL的一類人--》上EH的一類人類還可以設(shè)計(jì),創(chuàng)建,重復(fù)使用,這回不拿人說事了拿電腦吧電腦粗分一式機(jī)、筆記本。但是電腦都沒有點(diǎn)煙(就是汽車上的點(diǎn)煙器)這個(gè)功能,但是我需要這樣一個(gè)電腦,于是我就設(shè)想有這么一臺(tái),并且做了簡(jiǎn)單的設(shè)計(jì)圖紙。于是一個(gè)新類---點(diǎn)煙電腦就設(shè)計(jì)好了(這就等于在類模塊中寫代碼現(xiàn)在“點(diǎn)煙電腦”還只處于設(shè)計(jì)圖紙中,我要想使用就必須創(chuàng)建,我把圖紙交給廠家廠家按設(shè)計(jì)圖生產(chǎn)。這我才能使用(這就等于用NEW關(guān)鍵字實(shí)體化一個(gè)類朋友也想要一個(gè)點(diǎn)煙電腦,我就不用再直接叫廠家再生產(chǎn)一個(gè)就行了(整個(gè)過程當(dāng)中設(shè)計(jì)圖紙這一步是關(guān)鍵(在類模塊中寫代碼整個(gè)Windows系統(tǒng)中有很多種“類”,用于實(shí)現(xiàn)各種功能。VBA可以直接調(diào)用。謝謝LDY老師的注釋歡迎的版主朋友自己的想法和見解??斓搅?點(diǎn)才吃到。打開電腦,看到好多朋友都在關(guān)心這個(gè)帖子,而且好幾位朋友提覽器呢?大家通過這個(gè)工具可以搜索到和EXCEL以及VBA有關(guān)的各種各樣的軟的體系,VBA的幫助包括了兩個(gè)部分,一個(gè)是本地脫機(jī)幫助,也就是安裝完不斷更新并保持著的狀態(tài)。一些關(guān)鍵字。關(guān)鍵字,關(guān)鍵字就是那些在OFFICE里已經(jīng)被定義好了條賦值語(yǔ)句“IF1”,這樣系統(tǒng)在編譯的時(shí)候就會(huì)提示一個(gè)錯(cuò)誤,而不能通過對(duì)于如幫助呢!所以至今還未深入學(xué)習(xí)VBA。4、【2009.1.19】代碼起步——關(guān)鍵字 (Project對(duì)象(Object:可控制的某個(gè)東西,例如窗體和控件。(Form(Control(Property(Worksheet模塊(ModuleVBA(Sub(Function(Label(Textbox(ComanBttn(ListBox(ComboBox(OptionButtn(CheckBox【類關(guān)鍵字】 DimmyCellAsRangereDim:定義未顯式的數(shù)組的維數(shù)和元素; 常量數(shù)據(jù);如:ConstlimitAsInteger=33As:一般用于數(shù)據(jù)類型中的“AsType”子句;Type: 字符串值;Object:對(duì)象類型;IF...ELSE...ENDIF:分支判斷選擇語(yǔ)句;DO...LOOPWHILE:FOR...NEXT:限定次數(shù)循環(huán)語(yǔ)句;GOTO...:4、【2009.1.20】代碼起步——關(guān)鍵字(續(xù)【框架類關(guān)工程(Project:是指用于創(chuàng)建一個(gè)應(yīng)用程序的文件的集合。對(duì)象(Object可控制的某個(gè)東西,例如窗體和控件。窗體(Form:應(yīng)用程序的用控件(Control:指的是各種按鈕、、文本框等屬性(Property:是指對(duì)象的特征,如大小、標(biāo)題或顏工作表(WorksheetEXCEL文件里的工作表,例如sheet1、sheet2等。模塊(Module:指在VBA工程中存放獨(dú)立于用戶定義對(duì)象代碼的容器。過程(Sub:容納和組織代碼的限定符號(hào),一般和EndSub聯(lián)用,不返回結(jié)果函數(shù)(Function限定符號(hào),一般和EndFunction聯(lián)用并返回結(jié)果,到這些E文字母。我經(jīng)常去看HELP里面的例子,然而那里面居然連變量和過程的名字都是很長(zhǎng)的E文。沒辦法,誰(shuí)叫人家微軟是公司呢(記得之前有過現(xiàn)在也不知去向 那么怎么樣才能記住這些又長(zhǎng)又難記的單詞呢?不Project,VBA所關(guān)聯(lián)的代碼的總?cè)萜?。所有和這個(gè)工作簿(XLS)關(guān)聯(lián)的代碼,都裝在這Form,窗體。你一般在Windows里運(yùn)行的程序,都具備可視化的功能。那么這就是Form的功勞。通過FORM對(duì)象,你可以對(duì)這個(gè)工程里的一些窗體進(jìn)行屬Worksheet,工作表。指EXCEL文件里的工作表,例如sheet1、sheet2等。通中都能使用,并且可以互相傳遞值。那么就應(yīng)該將這些或代碼寫在模塊中。Sub,EndSub要明白一個(gè)概念,除語(yǔ)句外其他代碼都應(yīng)該放在這兩種容器內(nèi)。還記得上面講到的對(duì)象的和的例子嗎?剛講過,應(yīng)該不會(huì)忘吧,否則應(yīng)為就可以了,即:A.value=0。把上面所有的代碼都放在Sheet1的一個(gè)叫PrivateSubWorksheet_SelectionChange(ByValAsRange)'聲明一個(gè)Worksheet_SelectionChange事件的私有過程DimAAsRange'一個(gè)變量A,并制定為Range類SetA=Sheet1.Rows(1)'將A賦值為()Sheet1工作表的第一A.SelectASelectEndSub1.rar(5.655、【2009.1.21】代碼起步——關(guān)鍵字(續(xù) (Label(Textbox(ComanBttn(ListBox(ComboBox(ptionutton(CheckBox給它一個(gè)名字叫“”,E文叫“Label”。從我們上面描述的文字可以總結(jié)第二個(gè)控件叫做“文本框”,E文叫做“Textbox”。這個(gè)控件和有點(diǎn)第三個(gè)控件叫命令按鈕,E文叫“CommandButton”。這個(gè)控件的作用不用第四個(gè)控件叫列表框,E“ListBox”。這個(gè)控件的外觀,像一張一維()單擊“控件工箱”中的某一個(gè)控件按鈕然后在SHEET表上就可以按住左鍵拖動(dòng)鼠標(biāo)勾畫 點(diǎn)了這個(gè)按鈕就最后,結(jié)合一個(gè)實(shí)例講講常見控件的常見屬性和事件(實(shí)例:2.rar(9.07KB)出設(shè)計(jì)模式。這時(shí)候,在A1單元格輸入一個(gè)值后,只要按一下命令按鈕,在文本框中就會(huì)出現(xiàn)A1單元格的值。6、【2009.1.22】代碼起步——關(guān)鍵字(續(xù) 繼續(xù)聊關(guān)鍵字的話題。今天要講的是類關(guān)鍵字。先列示如下:【類關(guān)鍵字】 DimmyCellAsRangereDim:定義未顯式Const:常量數(shù)據(jù);如:ConstlimitAsInteger=33As:一般用于數(shù)據(jù)類型中的“AsType”子句;Type:上的“部件”,如果鼻子長(zhǎng)到了眼睛的上面,那就不屬于正常的人了。VBA代碼的還是開發(fā)自定義的過程、函數(shù)或模塊,使用前都必須。也就是告分兩種,一種是顯式,也就是將部分代碼明確的寫出來。另一種是非顯 量或常數(shù)時(shí),也同時(shí)定義了它的作用范圍,而此范圍是取決于位置以及用什么關(guān)鍵字來它。這就是我要講的第二個(gè)問題。先說的位置,如果你在某定被對(duì)象的作用范圍。比如,如果你在一個(gè)自定義模塊中,采用PUBLIC這OptionPrivateModule的模塊的任何過程中都是可用的(若該模塊使用了OptionPrivateModule,則該變量只是在其所屬工程中是公用的)。而采用量,也可以在過程級(jí)別中的變量;前者的變量對(duì)該模塊中的所有過程都是可用的,而后者則只在過程內(nèi)是可用的。STATIC關(guān)鍵字是用來靜態(tài)類型變量的,這是什么意思呢?舉個(gè)例子你就清楚了,一般的過程級(jí)別變量,在另外一種變量,雖然也是在過程級(jí)別中被的,但在該過程運(yùn)行,該變量就叫做靜態(tài)變量。靜態(tài)變量只能在過程級(jí)別中使用,用于變量并分配存儲(chǔ)空間。在整個(gè)代碼運(yùn)行期間都能保留使用Static語(yǔ)句的變量的值,并且程級(jí)別的代碼中被,因此其作用范圍只是局限于其所在的過程。今天的內(nèi)容可能比較枯燥,但絕對(duì)重要。正確理解類關(guān)鍵字的用法,7、【2009.1.27】代碼起步——關(guān)鍵字(續(xù))然免不了應(yīng)酬一番。喝了點(diǎn)小酒,一下午頭都昏昏的。到此時(shí)日落,方突然Byte:字節(jié)類型;Integer:整Long:長(zhǎng)整String:字符串類型;Boolean:邏Single:?jiǎn)尉菵ouble:雙精度類Currency:貨幣數(shù)值類型;Decimal:可以容納小數(shù)的數(shù)值類型;Variant:任何數(shù)字值或字符串值;Object:對(duì)明一個(gè)常量名字叫“Name”,我們?cè)诳梢栽诘臅r(shí)候直接賦予這個(gè)常量一個(gè)值Name字更便于閱讀和代碼。二是如果以后需要修改程序,需要將程序中使用到“張三”的地方都改成“”,那么如果用一個(gè)常量的這種方式的話,就Name二維數(shù)組(有兩個(gè)下標(biāo))和數(shù)組(有多于2個(gè)下標(biāo)。除了普通變量能采用率,不過會(huì)占用的內(nèi)存資源,因此是一種空間換時(shí)間的方法。文字符、圖形、動(dòng)畫、、音頻等。這些數(shù)據(jù)在計(jì)算機(jī)中都被翻譯為2進(jìn)制來保存。比如數(shù)字,分為整形、浮點(diǎn)型、單精度、雙精度、長(zhǎng)整形等,按照2的N次冪;對(duì)應(yīng)不同類別變量的取值范圍是存在不同的。BYTE1一塊特定內(nèi)存區(qū)域的名稱,我們通過這個(gè)名稱(即變量名)來使用這塊系統(tǒng)8、【2009.1.28】代碼起步——關(guān)鍵字(續(xù)過我,為什么我寫的條件會(huì)報(bào)錯(cuò)。那么他們是如何寫這些條件的呢?"x>1or用逗號(hào)分開,因此在EXCEL的公式中,如果用到多個(gè)條件之間的關(guān)系,就應(yīng)該采用函數(shù)形式而不是運(yùn)算符的形式,例如and(條件一,條件二)。1;如果數(shù)據(jù)在運(yùn)算符后面意思是數(shù)據(jù)先進(jìn)行加減運(yùn)算然后返回運(yùn)算1?2:3”1結(jié)果返回;如果表達(dá)式1不成立,則對(duì)表達(dá)式3求值,并將該值作為整個(gè)表達(dá)式運(yùn)算,并返回1個(gè)或多個(gè)值。輯運(yùn)算符主要有“not、and、or、xor”等。XOR9、【2009.1.29】代碼起步——關(guān)鍵字(續(xù)IF...ELSE...ENDIF:分支判斷選擇語(yǔ)句;DOWHILE...LOOP:DO...LOOPWHILE:先執(zhí)行后判斷循環(huán)語(yǔ)句;FOR...NEXT:限定次數(shù)循環(huán)語(yǔ)句;GOTO...:支判斷選擇語(yǔ)句,對(duì)本結(jié)構(gòu)代碼加以控制執(zhí)行。例如,“IF...ELSE...ENDIF”,這條語(yǔ)句以“IF”開始,至“ENDIF”結(jié)束,其中在IF所在行書寫判斷的條件“ELSE”和“ENDIF”之間書寫條件表達(dá)式為“假”時(shí)執(zhí)行的代碼。實(shí)例如下:IF條件THENENDIFIF”(即條件成立,那么就執(zhí)行語(yǔ)句1,然后結(jié)束該IF結(jié)構(gòu)去執(zhí)行ENDIF后面的代碼;如果該值為“假”(即條件不成立2,IFENDIF呢?可以通過在IF語(yǔ)句中嵌套IF語(yǔ)句來實(shí)現(xiàn)多條件判斷執(zhí)行的效實(shí)例如下:IF條件1THENIF2ENDIFENDSELECTCASECASE語(yǔ)句12CASEELSE3ENDDOWHILE...LOOP:先判斷后執(zhí)行循環(huán)語(yǔ)句;DO...LOOPWHILE:先執(zhí)行后判斷循環(huán)語(yǔ)句;DOWHILE環(huán)體的語(yǔ)句1和2。LOOPWHILE決定是否再次回到DO語(yǔ)句繼續(xù)執(zhí)行循環(huán)體內(nèi)的語(yǔ)句。FOR=1TONSTEP這里通過每次循環(huán)后控制變量的自動(dòng)增加步長(zhǎng)值,然后與最大值N比較,來句可以方便編程在無法確知轉(zhuǎn)移條件和難于控制時(shí)將程序執(zhí)行順序強(qiáng)制轉(zhuǎn)此必須加上必要的注釋,并盡量少用,以避免今后程序理解和的。至此,我們已經(jīng)將VBA代碼中常見的關(guān)鍵字都一一講解完畢了,想必大家今后在看到程序中的那些E文的時(shí)候也大致能知道這個(gè)屬于什么類型的關(guān)鍵字、在這個(gè)是我們這個(gè)接下來的章節(jié)需要完成的任務(wù),敬請(qǐng)期待《VBA入門指南——代碼起步之程序》篇10、【2009.1.30】代碼起步——程今夜鞭依舊,濃睡不消殘酒。坐在自己的,那感覺真是舒服啊~~先用今天的時(shí)間給大家介紹下如何培養(yǎng)良好的代碼書寫以及VBA編輯Publica(10)asSubFori=1to10Ifa(i)<0thena(i)=-a(i)EndIfPublica(10)asDimiasIntegerFori=1to10Ifa(i)<0a(i)=-a(i)EndIfEnd看出來了嗎?為第二段呢?其實(shí)這里至少有3個(gè)地方可以體現(xiàn)一種(標(biāo)準(zhǔn) (調(diào)試 11、【2009.1.31】代碼起步——程序(續(xù)程序如下:例2.rar(5.98PrivateSubWorksheet_SelectionChange(ByValAsRange)If(.Column<>1)ThenCells(.Row,1).SelectEndIfEnd右邊的是“SelectionChange”,這表示當(dāng)前的代碼寫在Worksheet工作簿的Sheet1SelectionChangeA1B1事件還帶了一個(gè)參數(shù),名字叫“”,這個(gè)參數(shù)的類型是Range,即單元格IF1(A,如果SHEET1就通過“Select”方法使由行序號(hào)和列序號(hào)兩個(gè)參數(shù)指定的單元格集合中的這上述思路執(zhí)行到“Cells(.Row,1).Select”語(yǔ)句執(zhí)行完畢后,突然又從許通過這個(gè)簡(jiǎn)單的例子并不能讓你完全明白VBA的代碼如何寫,但應(yīng)該能讓你被VBA所吸引,從而期待接下來更為的深入講解內(nèi)容吧~12、【2009.2.1】代碼起步——程序(續(xù)是哪個(gè)學(xué)生的成績(jī)。今天我們繼續(xù)在昨天的EXCEL文件的基礎(chǔ)上,實(shí)現(xiàn)一個(gè)新的功一個(gè)框顯示出來。EXCEL文件如下:例3.rar(7.52PrivateSubWorksheet_SelectionChange(ByValAsRange)If(.Column<>1)ThenCells(.Row,MsgBox":"&Me.Cells(.Row,1)&Chr(13)_&"語(yǔ)文:"&Me.Cells(.Row,2)&Chr(13)_&"數(shù)學(xué):"&Me.Cells(.Row,3)&Chr(13)_&"英語(yǔ):"&Me.Cells(.Row,4)&Chr(13)_&"物理:"&Me.Cells(.Row,5)&Chr(13)_&"化學(xué):"&Me.Cells(.Row,6)&Chr(13)_&"地理:"&Me.Cells(.Row,7)&Chr(13)_&"歷史:"&Me.Cells(.Row,8)&Chr(13)_&"生物:"&Me.Cells(.Row,9)&Chr(13)_&"體育:"&Me.Cells(.Row,10)&Chr(13)_&"總分:"&Me.Cells(.Row,11)&Chr(13)_vbOKOnly,EndIfEnd一個(gè)消息框,這個(gè)語(yǔ)句帶有三個(gè)參數(shù),各個(gè)參數(shù)之間都用逗號(hào)分隔。不是在上一講中提到了VBA識(shí)別判斷是否是一條語(yǔ)句就憑借換行符嗎?那么像太長(zhǎng),如果在一行寫可能會(huì)導(dǎo)致格式且不容易閱讀和理解,所以我們就使用“Me.Cells(.Row,1).Value”,即這里返回的是指定單元格內(nèi)的值,為列標(biāo)題的部分在框中占據(jù)一行的位置。13、【2009.2.2】代碼起步——程序(續(xù) 工作表在EXCEL里是一個(gè)獨(dú)立的對(duì)象(還記得啥叫對(duì)象嗎?),名字叫形排列。盡管在Excel的對(duì)象模型中包括了100多個(gè)對(duì)象,但你會(huì)發(fā)現(xiàn)最常用到時(shí)最先了解到的其中一點(diǎn)就是,Workbook中包括Worksheet。Worksheet是WorkbookWorksheetWorksheet(CellExcelExcel的圖表功能,所以你經(jīng)常需要處理圖表(Chart)對(duì)象。用“圖表向?qū)А眲?chuàng)建圖表時(shí)所做的一切都可以通過VBA代碼做到。這三張工作表的時(shí)候就采用集合的方法來寫代碼,即14、【2009.2.3】代碼起步——程序(續(xù)VBA代碼呢?這是我這幾天一直~我們面2課講解了如何讓VBA代碼從EXCEL工作表中取到單元格的數(shù)據(jù)天實(shí)例文件如下:例4.rar(10.99 ,用是。當(dāng)然這個(gè)名稱是由我們隨便起的,只要有意義就可以了。第二個(gè)AutosizeFalse,這個(gè)屬性表文字來?xiàng)l件,F(xiàn)alse表示不自動(dòng)調(diào)節(jié),True表示自動(dòng)調(diào)節(jié),這里我們?cè)O(shè)置為True(一會(huì)就能看到變化了Caption是設(shè)置按鈕上顯示的文字內(nèi)容,有的也把它叫做按鈕的名稱,我覺得會(huì)跟之單擊按鈕是不會(huì)觸發(fā)按鈕的Click)下面,我們?cè)贚1單元格輸入“等級(jí)”兩個(gè)字,表示根據(jù)前面K列的按平均分的范圍來定的,平均分在0到60分(不含)為“不及格”,60分到75秀”。如果我們是手工完成任務(wù),那么我們只要按照上面的標(biāo)準(zhǔn),看看KPrivateSubCmd_pj_Click()'按鈕單擊事件代DimiAsInteger'一個(gè)變量,名稱為I,類型為整形,作用為循環(huán)控制Dimtmp_TotalAsSingle'一個(gè)變量,名稱為tmp_Total,類型為單精度Sheet1.Range("K2").Select'選中K2Fori2ToSheet1.Range("K:K").End(xlDown).Row環(huán)條件是從第2K列最后一個(gè)有數(shù)值的行tmp_TotalSheet1.Cells(i,11).ValueL(總分賦值給變量tmp_TotalSelectCasetmp_Total'開始一個(gè)分支選擇判斷語(yǔ)句Case0To539.990540Sheet1.Cells(i,12).Value="不及格"'該條件下設(shè)置為“不及格”Case540To674.99540675Sheet1.Cells(i,12).Value="及格"'該條件下設(shè)置為“及格”Case675To764.99'675765Sheet1.Cells(i,12).Value="良好"'該條件下設(shè)置為“良好”Sheet1.Cells(i,12).Value="優(yōu)秀"'該條件下設(shè)置為“優(yōu)秀”CaseElse'除上述條件外的其他取值情況EndSelect'Select分支選擇判斷結(jié)束語(yǔ)句End我們回到熟悉的EXCEL窗口,點(diǎn)下“”按鈕試試,咦?怎么沒反應(yīng)?呵呵,還15、【2009.2.4】代碼起步——程序(續(xù)PrivateSubCmd_pj_Click()'按鈕單擊事件代DimiAsInteger'一個(gè)變量,名稱為I,類型為整形,作用為循環(huán)控制量Dimtmp_TotalAsSingle'一個(gè)變量,名稱為tmp_Total,類型為單精Sheet1.Range("K2").SelectK2Fori2ToSheet1.Range("K:K").End(xlDown).RowSelectCasetmp_TotalCase0To539.990540Sheet1.Cells(i,12).ValueCase540To674.99540675Sheet1.Cells(i,12).Value="及格"'該條件下設(shè)置為“及格”Case675To764.99675765Sheet1.Cells(i,12).Value="良好"'該條件下設(shè)置為“良好”Sheet1.Cells(i,12).Value="優(yōu)秀"'該條件下設(shè)置為“優(yōu)秀”CaseElse'除上述條件外的其他取值情況EndSelect'Select分支選擇判斷結(jié)束語(yǔ)句End等。這些事件大家有,可以自行添加代碼并實(shí)驗(yàn)。是對(duì)象?哪個(gè)是集合?哪個(gè)是屬性?哪個(gè)是參數(shù)?檢測(cè)是否真正掌握的最好辦在循環(huán)結(jié)構(gòu),第一句是一個(gè)賦值語(yǔ)句,通過一個(gè)變量,保存第I行第L天我們就要繼續(xù)前進(jìn)了,一個(gè)新的任務(wù)等著我們呢【問題1】希望通過range(某列).end(xldown).value獲得某列向下最后一個(gè)非空白單元格的值,試了下發(fā)現(xiàn)如果該列中有空白單元格,則獲得的是該空白單元格上面的那個(gè)值【答】是這樣的【問題2】那如果要避免這種情況,又該如何修改呢?【答】2種思路,一個(gè)是可以通過代碼去掉空格,一個(gè)是通過其他代碼實(shí)現(xiàn)該表達(dá)式的另外幫助里對(duì)range.end()的示本示例選定包含單元格B4的區(qū)域中B列頂端的單元格。VisualBasicforApplications本示例選定包含單元格B4的區(qū)域中第4行尾端的單元格。VisualBasicforApplications本示例將選定區(qū)域從單元格B4延伸至第四行最后一個(gè)包含數(shù)據(jù)的單元格VisualBasicforApplicationsRange("B4",【問題3】那么他這里尾端又是【答】尾端就是你第一個(gè)問題里說的情況,到所指方向的第一個(gè)空格的前一個(gè)單元格,這個(gè)【問題4】最后個(gè)例子里區(qū)別上面尾端的地方是在于Worksheets("Sheet1").Activate2B4(從B4向右遇到的第一個(gè)空值單元格的前一個(gè)單元格;后一個(gè)選定的是從B4開始一直向右到那一行的尾端單元格,選中的不是一個(gè)單元格,而是一行中的一部分單元格。見下圖實(shí)例:下一個(gè)實(shí)例效果Worksheets("Sheet1").Activate的意SHEET1當(dāng)前工作表;Range("B4",Range("B4").End(xlToRight)).Select這句話意思是選中從B4開始一直不知道您明白了沒有代碼如何能寫入新EXCELB表?ubAuto_Open()Dimfs,d,Setfs=CreateObject("Scripting.FileSystemObject")Setd=s=d.serialnumber Ifs1111111111ThenExitSub要使用的電腦磁盤序列號(hào)DimDate,de,daysDate=Datede=GetSetting("XXX","YYY","date","")'從表取IfdeThen'如果取不到值SaveSetting"XXX","YYY","date",Date'把日期保存到MsgBox"本文件可使用60天,今1,"提示days=Date-CDate(de)'計(jì)算文件使用的天數(shù)Ifdays>60 '如果文件使用超過60ThisWorkbook.ChangeFileAccessxlReadOnly'改為只讀屬性KillThisWorkbook.FullName'ThisWorkbook.CloseFalse'關(guān)閉不保存EndIf提示EndSub:原帖yd02092009-2-5代碼如何能寫入新EXCELB:原帖yd02092009-2-5代碼如何能寫入新EXCELBubAuto_Open()Dimfs,d,sSetfs=Setd=fs.GetDrive(fs.GetDriveName(fs.GetAbsoluteP16、【2009.2.6】代碼起步——程序(續(xù)發(fā)帖的問題。實(shí)例如下:批量數(shù)據(jù)處理.rar(25.07KB)那么具體要進(jìn)行什么樣的數(shù)據(jù)處理呢?根據(jù)要題目給出了從A1到AF30單元格區(qū)域的大量數(shù)據(jù),共計(jì)960個(gè)數(shù)據(jù)。要求對(duì)這些數(shù)據(jù)進(jìn)行分類,將出現(xiàn)次數(shù)依123的數(shù)據(jù)放在同一列中歸類,并統(tǒng)計(jì)每一類的數(shù)據(jù)個(gè)這個(gè)題目看似比其實(shí)有很多方法可以VBA的解決方案,可A1AF30A1AF30PrivateSubCommandButton1_Click()Dimi,j,p,q,x,y,uAsIntegerDimtmpaddrAsStringp=q=x=y=w=Range("A34",Fori=1ToSheet2.Range("a1","af30").Cells.Counttmpaddr=Sheet2.Range("a1","af30").Cells(i).AddressSelectCasejCasep=p+1Range("g34").Value=CStr(p-34)Case2:Foru=34Toq-IfSheet2.Range("B"&CStr(u)).Value=Sheet2.Range(tmpaddr).ValueThenEndIf
q=q+1Range("h34").Value=CStr(q-CaseForu=34Tox-IfSheet2.Range("C"&CStr(u)).Value=Sheet2.Range(tmpaddr).ValueThenEndIf
x=x+1Range("i34").Value=CStr(x-CaseIs>Foru=34Toy-IfSheet2.Range("D"&CStr(u)).Value=Sheet2.Range(tmpaddr).ValueThenEndIf
y=y+1Range("j34").Value=CStr(y- Case w=w+ Range("k34").Value=CStr(w)EndSelectPrivateFunctionCountIf(ByValtmpRAsRange,ByValtmpNAsString)AsDima,b,cAsIntegerb=0Fora=1ToIftmpR.Cells(a).Value=tmpNThenb=b+1EndCountIf=bEnd17、【2009.2.7】代碼起步——程序(續(xù)自2月4日立春以后,這個(gè)天氣是一天熱過一天了,今天早晨醒來居然我們今天的代碼中,分了兩個(gè)過程。分別是:CommandButton1_Click和FunctionCountIf,CommandButton1是這里的FUNCTION,它與過程的區(qū)別是過程一般不返回結(jié)果,而函數(shù)需要返回結(jié)果。看看這兩個(gè):PrivateSubCommandButton1_Click()和PrivateFunctionCountIf(ByValtmpRAsRange,ByValtmpNAsString)AsInteger返回類型被為Integer類型?! 句,“Dimi,j,p,q,x,y,uAsInteger”和“DimtmpaddrAsString”?!皅=34”、“x=34”、“y=34”、“w=0”,細(xì)心的朋友會(huì)發(fā)現(xiàn),怎么這里出現(xiàn)了一個(gè)未的變量
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 網(wǎng)絡(luò)規(guī)劃設(shè)計(jì)師考試考題分析試題及答案
- 藥劑學(xué)人才培養(yǎng)新模式考試試題及答案
- 2024春高中政治2.2唯物主義和唯心主義教學(xué)案新人教版必修4
- 教師資格考試教學(xué)評(píng)估試題及答案
- 系統(tǒng)架構(gòu)設(shè)計(jì)師的職業(yè)素養(yǎng)分析試題及答案
- 經(jīng)濟(jì)師試題及答案
- 林業(yè)類考試試題及答案
- 現(xiàn)代地貌學(xué)試題及答案
- 監(jiān)理資格證試題及答案
- 醫(yī)學(xué)統(tǒng)計(jì)考試題及答案
- 輸電桿塔用地腳螺栓與螺母條件
- 國(guó)家開放大學(xué)《心理學(xué)》形考任務(wù)1-4參考答案
- 凌格風(fēng)空壓機(jī)L7.5-L30系列產(chǎn)品說明書
- Arduino應(yīng)用技術(shù) 課件 第1-3講 初識(shí)arduino、Arduino語(yǔ)言、Arduino基本示例
- 銀行防搶應(yīng)急預(yù)案演練方案總結(jié)
- (高清版)DZT 0217-2020 石油天然氣儲(chǔ)量估算規(guī)范
- 校園安全培訓(xùn)合作協(xié)議
- 巴林銀行倒閉案課件
- 2023年海洋運(yùn)輸企業(yè)風(fēng)險(xiǎn)管理與內(nèi)控
- 部編版道德與法治三年級(jí)下冊(cè)全冊(cè)單元知識(shí)點(diǎn)梳理期末復(fù)習(xí)
- 兒童孤獨(dú)癥的診斷與康復(fù)治療
評(píng)論
0/150
提交評(píng)論