Excel || VBA基礎(chǔ) & 工作簿的操作

作為一只財(cái)務(wù)狗(沒(méi)錯(cuò),就是我),和Excel打交道簡(jiǎn)直是一件再正常不過(guò)的事情了。你每天無(wú)數(shù)次的和Excel打交道,每個(gè)月也許還無(wú)數(shù)次的從各種系統(tǒng)中導(dǎo)出各種的表再做基本分豪無(wú)差的手工加工。同時(shí)你也許還在懷疑人生。說(shuō)好的高大上的可以對(duì)過(guò)往財(cái)務(wù)數(shù)據(jù)分析來(lái)給公司戰(zhàn)略一些input,可是每天機(jī)械的出報(bào)表關(guān)賬已經(jīng)占據(jù)了八小時(shí)(甚至還多)的時(shí)間,哪有閑工夫去做分析?

也許你不是一只和我一樣的財(cái)務(wù)狗,而是一個(gè)高大上的HR。在每個(gè)月底算工資算五險(xiǎn)一金算獎(jiǎng)金的時(shí)候,是不是也在碎碎念為啥每個(gè)月都要做這種無(wú)聊的毫無(wú)技術(shù)含量的活?

除此之外,收集CASE的時(shí)候我還看到了辦公室部門,生產(chǎn)計(jì)劃部門等等各種工作崗位的小伙伴們對(duì)重復(fù)無(wú)趣勞動(dòng)的申訴。

其實(shí),幾乎所有的,有邏輯的重復(fù)性的做表工作,是可以通過(guò)碼代碼(VBA)來(lái)實(shí)現(xiàn)自動(dòng)化的。VBA還可以實(shí)現(xiàn)跨軟件的操作,比如給每個(gè)客戶自動(dòng)發(fā)送對(duì)賬單,把excel的內(nèi)容填寫到每個(gè)單獨(dú)的word文檔,等等等等。

我會(huì)慢慢寫一點(diǎn)VBA方面的小文章,但是這不是一個(gè)系統(tǒng)的教程,只是希望你能發(fā)現(xiàn)提高工作效率的方法,盡快上手寫出一點(diǎn)小小的程序。

一?在哪碼代碼?

常用的辦法有兩個(gè):

通過(guò)菜單欄的開發(fā)工具 - Visual Basic進(jìn)入

也許你在你的Excel菜單欄會(huì)找不到開發(fā)工具這個(gè)東東,那是因?yàn)槟銖膩?lái)沒(méi)有用過(guò)。在文件-選項(xiàng)-自定義功能區(qū)中可以把開發(fā)工具調(diào)出來(lái)喲

????2. 方法2就更加簡(jiǎn)單粗暴了,ALT+F11快捷鍵直接進(jìn)入。

進(jìn)入之后,界面大概是這個(gè)樣子的。

在你需要碼代碼的那張表上,單擊右鍵,選擇插入-模塊,就會(huì)出現(xiàn)能讓你碼代碼的窗口了。

通常來(lái)說(shuō),我建議大家先更改模塊名字為英文名字,有的電腦因?yàn)橄到y(tǒng)語(yǔ)音的問(wèn)題,中文名字的模塊可能出現(xiàn)開文件報(bào)錯(cuò)全部代碼丟失的問(wèn)題。辛辛苦苦碼了好一陣子的代碼丟了會(huì)讓人抓狂的。

另外,非常重要的一點(diǎn),要把有代碼的文件,保存成xlsm格式的文件,xlsx的文件是不支持VBA的。

? 小總結(jié)??

ALT+F11和開發(fā)工具下的Visual Basic都可以進(jìn)入編輯器,在表格下新建個(gè)模塊開始碼起來(lái)吧。文件要存成xlsm格式!!

二?對(duì)象 - 對(duì)象是什么?

別想歪,此對(duì)象非彼對(duì)象,而是指你在程序中需要控制和操作的東西,它可能是某個(gè)表,某個(gè)單元格等等。對(duì)象和對(duì)象之間的關(guān)系,可能像俄羅斯套娃一樣:

Application:代表了EXCEL程序

Workbooks:工作薄

Worksheets:工作表

Range:工作表中的某些單元格

這種一層套一層的對(duì)象,中間用.來(lái)連接,從高的連接到低的,比如:

Applicaiton.Workbooks("KeepLearn").Worksheets("Sheet1").Range("A1")

那么指的就是KeepLearn這個(gè)工作簿中Sheet1的工作表的A1單元格。是不是很簡(jiǎn)單?

當(dāng)然我們并不是每次想指A1都需要從excel的程序application寫起,系統(tǒng)會(huì)默認(rèn)你是在目前活動(dòng)的工作簿/工作表中選取,所以如果活動(dòng)的工作表就是Sheet1,你可以直接寫Range(“A1“)

對(duì)象 - 對(duì)象的屬性和方法

對(duì)一個(gè)對(duì)象來(lái)說(shuō),它既有屬性又有方法。我們還是來(lái)做個(gè)簡(jiǎn)單的類比吧,這次把對(duì)象就看成你家里的那個(gè)對(duì)象

- 屬性是你對(duì)象的內(nèi)容或特點(diǎn),比如你對(duì)象的名字,你對(duì)象的膚色,你對(duì)象的衣服,等等等等。

-?方法則是你對(duì)對(duì)象的某個(gè)操作,比如你給你的對(duì)象穿了件新衣服,你親吻了你的對(duì)象,或者你換了個(gè)對(duì)象,咳咳,等等。

對(duì)應(yīng)到Excel中,那么:

- 對(duì)象的屬性可能是工作表的名字,某個(gè)單元格的字體,字號(hào),顏色

- 對(duì)象的方法則可以是打開工作表、復(fù)制某個(gè)單元格、激活了一個(gè)新的對(duì)象

?小總結(jié)?

對(duì)象就是你控制和操作的東西,可以是工作簿,工作表,單元格等等。對(duì)象有屬性也有方法,要區(qū)分開哦。

小例子

其實(shí)除了對(duì)象還有很多很多的基礎(chǔ)知識(shí),是學(xué)任何自然語(yǔ)言或機(jī)器語(yǔ)言都避不開的,但是為了讓看的人不被無(wú)數(shù)的語(yǔ)法淹死,也更符合我讓你們盡快上手寫出點(diǎn)東西,甚至不問(wèn)原因只求結(jié)果的目的,我們小例子需要啥,那么上面就只說(shuō)什么語(yǔ)法。

今天我們的例子很簡(jiǎn)單,我們?nèi)慷贾粚?duì)工作簿這個(gè)對(duì)象進(jìn)行操作,我們需要新建三個(gè)工作簿,保存這三個(gè)工作簿在桌面上,保存的時(shí)候分別命名為:上海,北京,深圳。

9行代碼就可以達(dá)到這個(gè)目的啦,而且大家可以看出來(lái)其中其實(shí)3行基本一樣的代碼重復(fù)了三次。我們歸納一下對(duì)工作簿的動(dòng)作其實(shí)就以下幾種:

新建工作簿

Workbooks.Add

打開工作簿

Workbooks.Open "路徑"

例如:Workbooks.open "F:\KeepLearn.xlsm“

激活工作簿

Workbooks("工作簿名").Activate

例如:Workbooks("上海").Activate

同一個(gè)時(shí)間,活動(dòng)的工作簿只能有一個(gè),如果你需要激活另外一個(gè)工作簿,那么原先的工作簿就自動(dòng)處于非活動(dòng)的狀態(tài)了。有些EXCEL的操作也會(huì)自動(dòng)切換活動(dòng)工作簿,例如上面代碼中的新建工作簿,新建出來(lái)的工作簿自動(dòng)成為當(dāng)下的活動(dòng)工作簿。

這點(diǎn)新手碼代碼時(shí)候一定要特別注意,因?yàn)槿绻阒粚懥薘ange("A1"),那么程序會(huì)自動(dòng)認(rèn)為是活動(dòng)單元表的A1單元格。這種情況下,哪個(gè)工作表是活動(dòng)的就很重要了。

保存工作簿

Workbooks("工作簿名").Save

如果需要保存為新的文件,或者是第一次保存一個(gè)新建的工作簿,用的是saveas

Workbooks("工作簿名").Saveas "路徑及文件名“

關(guān)閉工作簿

關(guān)閉所有打開的工作簿:

Workbooks.Close

關(guān)閉指定的工作簿并保存:

Workbooks("工作簿名").Close True

關(guān)閉指定的工作簿并不保存:

Workbooks("工作簿名").Close False

? 小提示 ?

VBA可以對(duì)工作簿這個(gè)對(duì)象進(jìn)行新建、打開、保存、關(guān)閉等各種動(dòng)作。

五 總結(jié)

這真是一篇不倫不類的教材或者分享,如果你還能看到這里,非常感謝。

我自己邊寫邊感覺(jué)這個(gè)也該說(shuō)說(shuō),那個(gè)也該說(shuō)說(shuō),但又擔(dān)心一股腦把概念都丟出來(lái),所有人都飛快喪失興趣了。慢慢寫,慢慢平衡吧。有意見歡迎提出來(lái)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 本例為設(shè)置密碼窗口 (1) If Application.InputBox(“請(qǐng)輸入密碼:”) = 1234 Th...
    浮浮塵塵閱讀 14,659評(píng)論 1 20
  • 1.1 VBA是什么 直到90年代早期,使應(yīng)用程序自動(dòng)化還是充滿挑戰(zhàn)性的領(lǐng)域.對(duì)每個(gè)需要自動(dòng)化的應(yīng)用程序,人們不得...
    浮浮塵塵閱讀 22,136評(píng)論 6 49
  • VBA訂制工具欄 http://club.excelhome.net/thread-1047254-1-1.htm...
    大海一滴寫字的地方閱讀 2,350評(píng)論 0 0
  • 自從2014年開通[完美Excel]微信公眾號(hào)以來(lái),堅(jiān)持分享已經(jīng)學(xué)習(xí)到的Excel和VBA知識(shí)和心得,目前已分享文...
    完美Excel閱讀 8,451評(píng)論 6 69
  • 網(wǎng)上有很多說(shuō)法,但是好像遺漏了一種情況,就是你提交的二進(jìn)制文件有問(wèn)題,這種情況在xcode里面是看不出來(lái)的,在iT...
    統(tǒng)領(lǐng)三界閱讀 332評(píng)論 0 1

友情鏈接更多精彩內(nèi)容