国产成人毛片视频|星空传媒久草视频|欧美激情草久视频|久久久久女女|久操超碰在线播放|亚洲强奸一区二区|五月天丁香社区在线|色婷婷成人丁香网|午夜欧美6666|纯肉无码91视频

如何快速學(xué)習Excel VBA?

網(wǎng)友解答: 目前,VBA大多應(yīng)用在EXCEL中,但VBA不僅僅局限在EXCEL中,整個Microsoft Office套件都可以使用VBA進行功能的關(guān)聯(lián)與擴展。我認為十分有必要學(xué)習VBA

網(wǎng)友解答:

目前,VBA大多應(yīng)用在EXCEL中,但VBA不僅僅局限在EXCEL中,整個Microsoft Office套件都可以使用VBA進行功能的關(guān)聯(lián)與擴展。

我認為十分有必要學(xué)習VBA。

VBA并不復(fù)雜,重要的是積累。以我的經(jīng)驗剛開始學(xué)習VBA主要從兩個方面入手:

Visual Basic語法

Excel中的對像模型

然后,就是在使用VBA的過程中不斷總結(jié),多看看別人是如何處理相同的問題。

想要快速學(xué)習VBA,推薦先學(xué)習Visual Basic基本語法,同時掌握EXCEL中的“錄制宏”。試著使用“錄制宏”將你的操作錄下來,然后再分析錄制的代碼。 “錄制宏”很實用,對學(xué)習VBA也有很大的幫助。

網(wǎng)友解答:

新手學(xué)習Excel VBA的幾點建議,你不妨過來

1:調(diào)試

經(jīng)??吹叫率謱W(xué)習了很長時間的VBA之后仍然不會使用調(diào)試功能,一遇到問題馬上就請教他人,這樣不利于自身的成長。調(diào)試非常重要,是學(xué)習代碼本身

不可或卻的一部分。是診斷,梳理代碼邏輯的過程,可以避免邏輯錯誤的重復(fù)性發(fā)生。善用調(diào)試新手很多的問題都可以得到解決,即可擺脫對他人的依賴性,自身又得到長足的進步,一舉兩得。

三個窗口,三個功能鍵:

地方窗口,立即窗口,觀察窗口,F1(幫助),F2(屬性方法),F8(分步執(zhí)行)

途中診斷:

斷點,stop等等。

2:分拆

(1)語句分拆

長而難懂的句子分拆成基本單元,利用調(diào)試功能一個個解決,很容易就理解了它的含義。

如:intRow=Range("A"&Rows.Count).end(xlup).row

立即窗口:?Rows.Count

Range("A"&Rows.Count).Select

Range("A"&Rows.Count).End(xlup).Select

?Range("A"&Rows.Count).End(xlup).row

用眼睛都可以看到每一步Excel選中的哪個單元格,那么自然就不難理解了。這個小范例同時揭示了學(xué)習程序過程中一個非常重要的方面:動手嘗試。

(2)子程序分拆

把一個冗長的程序按照功能拆分成一個個相對獨立的子程序來調(diào)用,使得程序具有一定程度的組織性,結(jié)構(gòu)性,規(guī)整性大大提高了代碼的可維護性,擴展性,重用性。這是貫穿程序語言發(fā)展的一條主線,因為它直接指向了程序開發(fā)的終極目的之一:開發(fā)效率。

3:耐心

學(xué)習目的明確≠急于求成。無論學(xué)習目的如何直接和明確,學(xué)習的過程仍然不是一蹴而就的,"捷徑"只能是建立在扎實的階梯式基礎(chǔ)上。有些新手基本代碼還沒寫利落就開始用界面寫"系統(tǒng)",甚至還沒學(xué)會調(diào)試,結(jié)果是步履維艱,一步一問,三步一錯,無以為繼。還有的朋友學(xué)習VBA是為了研究彩票,還沒學(xué)習一星期就開始寫各種計算方法,自然處處遇"難",大挫學(xué)習興趣,隨之放棄。抱著明確的目的學(xué)習是好事,不管目的是否"明智"(這是另外一個話題),但明確的目的不等于"急功近利"。學(xué)習的進程總是遵循漸進式的規(guī)律,跳躍式的一夜暴富只能是空中樓閣,所以耐心在學(xué)習過程中就顯得尤為重要。

單獨說說效率和速度的問題。程序的效率大致包含兩層含義

(1):執(zhí)行效率;

(2)開發(fā)效率。

執(zhí)行效率又可分為時間效率和空間效率,空間效率不在本貼討論范圍內(nèi),所以執(zhí)行效率簡化為速度來討論。之所以單獨拿出來說這個問題是因為論壇很多帖子在"速度"追逐上所表現(xiàn)出的"熱忱"比較極端,走的路比較偏執(zhí),希望初學(xué)者能夠以一個相對平和的心態(tài)來看待效率。

執(zhí)行效率與開發(fā)效率,從字眼上分析就知道,程序的最優(yōu)目標是兩者并重。遺憾的是兼顧并非常態(tài),凸出一者的同時往往傷害到另一者。當兩者出現(xiàn)矛盾時,職業(yè)代碼工人較為普遍接受的原則是:"只有在必須考慮速度的時候才優(yōu)化執(zhí)行效率,否則以開發(fā)效率為重"。

換句話說,只有在不得不考慮優(yōu)化速度的時候執(zhí)行效率的目標高于開發(fā)效率因為要保證功能性,有效性。否則只考慮開發(fā)效率不考慮執(zhí)行效率。職業(yè)程序員和職業(yè)"玩家"在這個問題的認識上經(jīng)常會產(chǎn)生分歧。

注重效率的程序員

設(shè)身處地的想一下,職業(yè)程序員在意的是什么?他們在意的是快速,順利的完成工作,在意的是軟件的穩(wěn)定性,有效性盡量避免老板和客戶找他們的麻煩,最終目的就是掙錢,吃飯,養(yǎng)家。花費幾個小時來提速幾個程序模塊,工資沒多一分錢,延誤了進度,工期老板肯定不干。基于這樣的原因,他們順理成章的注重與可維護性,穩(wěn)定性,擴展性,重用性相關(guān)的開發(fā)效率。

追逐"手筋"的"玩家"~

相比較而言,職業(yè)"玩家"寫代碼并非為了工作,沒有項目壓力,無需考慮開發(fā)時間,開發(fā)成本,追逐的是華麗的"手筋",以及速度飆升所帶來的愉悅。其次,速度本身的屬性決定了它是一把極其規(guī)范,可量化的標尺。基于速度為標準的代碼具有極強的博弈性和競技性,不僅可以獨樂還可以眾樂。

"有意義"和"無意義"

前邊我們就曾提過"有意義的快"和"無意義的快","有意義的快"可以包括兩種情況分別稱作"根本性速度提升"和"規(guī)模型速度提升"。

插播小故事:"這事兒不賴我"

某日一油漆工找到一份新工作:刷馬路中間的白線。

于是油漆工把一個油漆桶放到了起點上開始工作了。

第一天,油漆工刷了300米,老板大喜,夸獎油漆工:"工作很出色!"

第二天,油漆工刷了150米,老板不露聲色,鼓勵油漆工:"工作干的不錯!"

第三天,油漆工刷了30米,老板大怒,吼道:"今天只刷了第一天的1/10,到底怎么回事?"

油漆工回答:"這事兒不賴我呀!我每天距離油漆桶越來越遠了啦!"

這個小故事形象的描繪了這樣一個事實:改變工作方式可以帶來根本性的效率提高。在遇到類似于上述情況時,初學(xué)者可考慮優(yōu)化代碼提升速度。

在VBA中當遇到速度慢的不可忍受的情況時,粗略的說可從以下幾點入手:

(1)合理化數(shù)據(jù)源的結(jié)構(gòu);

(2)用數(shù)組一次讀寫單元格內(nèi)容,避免頻繁操作單元格對象;

(3)查詢搜索改用Collection或字典。

所謂"規(guī)模型速度提升"是指對于應(yīng)用頻次高的問題,可以考慮一次優(yōu)化速度,應(yīng)用無數(shù)次,追求規(guī)模效應(yīng)降低開發(fā)效率損失。至于"非根本性速度提升"

的例子可以在論壇看到很多,諸如循環(huán)是用指數(shù)索引快?還是ForEach索引快?等等,這里就不一一列舉了。

用一句話來總結(jié):"程序的本質(zhì)是用機器來解放勞動力,而不是用勞動力解放機器!"

本來想寫很多內(nèi)容,一來由于沒什么初學(xué)者看所以無收獲可言;二來如果深入的話恐會戕害一些壇友的感情;三來目前此帖已有萬余字,再多就不像帖子了。再深入展開下去實屬下下策,故此樓略顯單薄,但基本意思都點到了。剩下關(guān)于算法和數(shù)據(jù)結(jié)構(gòu)的認識和態(tài)度在本樓沒有提及。

到該結(jié)束的時候了,想必大家能理解本貼的態(tài)度:不褒不貶。你用,或者不用它,你喜歡,或者不喜歡它,它就在那里,不遠不近,無所謂“強"無所謂”弱"。

一致性,對稱性是匹配的原則。對稱匹配,你收獲你想要的,Excel,VBA發(fā)揮應(yīng)有的效力;反之,錯位匹配引發(fā)牽強附會,捉襟見肘。既然談過了VBA的定位,自然不可避免的要談一下對其宿主Excel的認識。話題就從這里開始吧......

靈活是把雙刃劍

相比VBA而言,Excel的邊緣性更強。相信大家都積累了多年的使用經(jīng)驗,是Excel的行家里手,提及某某功能如何實現(xiàn)均可娓娓道來。如果問一個這樣的問題:"Excel到底是什么?"一言以畢之,"電子表格工具"。這種定義只是給Excel起了個別名(alias),不是一種理解,認識和定位。曾經(jīng)問過自己這個問題,我發(fā)現(xiàn)自己答不上來或者說自己的能力不足以回答這個問題。

邊緣性強主要表現(xiàn)在使用范圍廣泛,尤其它還是一款不斷升級的產(chǎn)品并且有諸多第三方插件對其進行功能擴展,這時候你會發(fā)現(xiàn)無論怎么回答這個問題都是錯的,難免給初學(xué)者造成"Excel無所不能"的錯覺。但如果不能予以概念上的定位,就無法回答"適度"使用的問題,結(jié)果就是一切和表格有關(guān)的工作都用Excel來做。

Excel簡單易用,功能強大,所見即所得(這可是個不得了的特點),這些都是耳熟能詳?shù)奶攸c。個人認為Excel最大的特點來自于靈活:

(1)自由設(shè)計用戶自己的藍圖,天馬行空,個性十足;

(2)Excel分享了數(shù)據(jù)庫的一些特點,具有一定程度的記錄和數(shù)據(jù)存儲的功能。雖然可以說Excel缺乏關(guān)系結(jié)構(gòu),但由于靈活的特點,可以用工作表打造出關(guān)系結(jié)構(gòu);

(3)通過各種計算和圖表功能,提供多視角數(shù)據(jù)體驗;

(4)騰挪空間廣闊,運用水平差異大。

然而靈活性并非是無成本的,靈活的同時就意味著規(guī)范性差,同樣功能的表格10個人設(shè)計出12樣兒來,格式,表頭,結(jié)構(gòu),實現(xiàn)方式等等花樣百出。

規(guī)范性差導(dǎo)致用戶交流困難,隨著邏輯業(yè)務(wù)設(shè)計復(fù)雜程度不斷提高,有效性控制繁雜,錯誤幾率增大,急劇加重了設(shè)計者的負擔。邏輯業(yè)務(wù)關(guān)系越復(fù)雜設(shè)計成本的增長幅度就越大(呈非線性增長態(tài)勢)。前些日子看到一位壇友希望把一套表格封裝,表格集成了一套用公式表達的復(fù)雜邏輯業(yè)務(wù)關(guān)系。其實這套關(guān)系本身就是一道加密壁壘,把其中的邏輯梳理清楚比破解還費勁。

個人的一點看法:既然很難在概念上抽象化Excel的定位,只好用一條條描述性的特征來概括Excel,但這種列舉是無法窮盡的。

從正面說:

(1)Excel"適用"于:邏輯業(yè)務(wù)關(guān)系相對簡單,數(shù)據(jù)規(guī)模不大,一鍋端式的集成應(yīng)用;(可惜無法量化定義"簡單","規(guī)模")

(2)對于業(yè)務(wù)邏輯復(fù)雜,規(guī)模較大的數(shù)據(jù),Excel"適合"充當數(shù)據(jù)庫和用戶之間的緩沖層(buffer)。致力于數(shù)據(jù)的展示,整理,綜合,"分析"等體現(xiàn)靈活性的職責。

從反面說:(表象)

(1)避免用Excel設(shè)計大規(guī)模業(yè)務(wù)關(guān)系復(fù)雜的"系統(tǒng)";

(2)避免大量數(shù)據(jù)存儲造成Excel文件尺寸過大;(動輒幾十上百M的Excel文件經(jīng)常能夠看到)

(3)避免大量公式集成,重算可以導(dǎo)致文件打開速度過慢,運行速度過緩;

(4)避免搭建Excel文件系統(tǒng);(幾十上百Excel文件組成的文件集也是屢見不鮮)

(5)......

上述情況可以適當考慮使用數(shù)據(jù)庫的功能,畢竟他們之間是有本質(zhì)區(qū)別的。這里只是以我的觀點來看待Excel,“不適合"不代表Excel不能做到,最終的評判要交給用戶,誰用誰有話語權(quán)而不是設(shè)計者和所謂規(guī)范的探索者。在能意識到"隱患"的條件下,如果您覺得好用,完全可以避免庸人自擾式的思考,堅持走自己的路。

既然Excel的特點是靈活,我們就以一個靈活的態(tài)度來認識和對待它好了。

至此關(guān)于Excel和VBA的話題就告一段落了,最后再補充一句:

對于業(yè)務(wù)部門職員來說,Excel,VBA解決工作中的問題真的是夠用了,也是很好的選擇。如果不夠用說明您的工作應(yīng)該是由IT部門來完成的工作。業(yè)務(wù)部門的員工扛著VBA去干IT部門的工作,無論是工具和還是工作內(nèi)容都錯位的離譜。

最后收錄一些經(jīng)典語錄。既然是收集,就是一個開放和相對漫長的過程,先把帖子的架子搭完,對觀眾有個交代,

【存在即合理】

<評:理解"合理"的著眼點才能正確的認識,對待,運用好這種存在。一言以畢之不是試圖掩蓋存在本質(zhì)的借口就是盲信。

【細節(jié)決定成敗】

<評:方向決定"成"是否有意義。

【不管什么,只要學(xué)好了都?!?/p>

<評:憤~青的態(tài)度抹殺客觀存在的差異性。

只要聽到"不管....只要....就...."的句子就是錯的?

標簽: