最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

VBA基礎實戰(zhàn)之自動化錄入表單

2022-06-07 14:12 作者:之了學吧  | 我要投稿

大家好,我是一分鐘學Excel。經(jīng)過前幾期視頻的VBA基礎學習后,是時候來一波實戰(zhàn)檢驗自己的學習水平啦!

今天的挑戰(zhàn)很簡單,用最基礎最簡單的VBA語句來實現(xiàn)自動化錄入表單。實現(xiàn)效果如下:

從演示效果中,我們可以發(fā)現(xiàn),程序具備的功能為提供一個可輸入的主頁工作表,輸入的信息會自動填充到詳細信息的表格之中。這樣的功能在日常生活中也會用到,接下來,讓我們正式開場吧~

首先,先別著急,先來思考一下,不用代碼,怎么去完成這樣一個功能?我猜你會這樣做,先復制主頁工作表中的內(nèi)容,然后跳轉到詳細信息工作表中,運用選擇性粘貼功能將其粘貼。就像這樣:

其實這樣的思路也可以用來編寫程序。因為開頭的時候有說過,我們是以最簡單最基礎的VBA語句來實現(xiàn),所以我們將思路整理一下,分別為這三步:

  1. 選中單元格并進行內(nèi)容復制;

  2. 跳轉工作表進行選擇性粘貼;

  3. 完成粘貼后進行主頁工作表內(nèi)容清空。

根據(jù)這三步的內(nèi)容,我們分別展開VBA語句編寫。首先,我們需要明白,一個VBA程序的誕生是由Sub語句開始的,中間跟上程序功能代碼,最后以End Sub進行結尾。

所以在最開始,需要先寫上Sub語句,Sub單詞后跟上空格在跟上程序名,這時候按下鍵盤上的回車鍵,VBA會自動識別,填充上括號及End Sub語句。

好,準備工作完畢?,F(xiàn)在可以開始第一步:選中單元格并進行內(nèi)容復制。

一、選中單元格并進行內(nèi)容復制

從表格中,我們可以看出C6、C8、C10單元格中是輸入信息的單元格。也就是說,我們首先需要選中這三個單元格,然后進行復制。

我們試著用英文去進行翻譯【選中單元格區(qū)域】這句話。區(qū)域、范圍的英文為:Range,選中、選擇的英文為:select。而在VBA中,【選中單元格區(qū)域】這句話的代碼表示為:

  • 代碼

'step1:選中區(qū)域 '?

Range("C6,C8,C10").Select

單引號在VBA中表示注釋,文字兩側加上一組單引號的注釋并不會被程序執(zhí)行,只做提示作用。養(yǎng)成寫注釋的好習慣,有利于理清思路。

從上可知,【選中單元格區(qū)域】的VBA語法為Range跟上括號,括號中是區(qū)域名(多個區(qū)域需用逗號進行分割)然后跟上點號,點號的作用為調(diào)用,調(diào)用什么方法,后方的Select便是Select方法,作用為選中。簡單來說,VBA的語法與我們平時習慣的中文語法相反,翻譯過來便是C6—C10單元格區(qū)域調(diào)用Select方法。

這樣來看,你也許會發(fā)現(xiàn)一個規(guī)律。VBA語法往往是主語(如單元格區(qū)域)然后調(diào)用,調(diào)用為點號,點號后跟上對應的方法即可。不過,都是英文哦~

編寫完這句語句后,我們可以點擊上方菜單欄去看看運行效果是否如同預想的一樣,C6—C10單元格區(qū)域被選中。

  • 運行結果

選中的問題結束后,便到了復制的功能。同樣的,靈活變通一下,即使寫不出來,你也應該能夠猜到,VBA的表現(xiàn)形式為:選中區(qū)域.復制

剩下的就很簡單了,翻譯它即可。注意選中后的區(qū)域應該是名詞,select為動詞,selection為名詞。再配上點號與復制的英文(copy)即可。

  • 代碼

'step2:內(nèi)容復制'?

Selection.Copy

  • 運行結果

二、跳轉工作表進行選擇性粘貼

【跳轉工作表進行選擇性粘貼】顧名思義,首先需要先跳轉工作表,跳轉工作表的實際操作為點擊工作表即可,與上文的選中單元格區(qū)域一樣。使用工作表("表名").Select 來實現(xiàn)效果:

  • 代碼

'step3:選中詳細信息工作表'?

Sheets("詳細信息").Select


工作表跳轉之后,面臨一個問題。如何讓VBA識別空白區(qū)域進行粘貼?

我的想法是,讓VBA先識別到表格的尾部區(qū)域,然后再向下移一格。從而到達表格最下方的空白區(qū)域,就像這樣:

這里就需要借助一些方法來進行實現(xiàn),分別是:

  • Range("A1")定位單元格

  • End(xlDown)移動到表格最尾部

  • Offset(1,0)定位下移一格

Range()前面我們學習過它的用法,至于End()與Offset()這里簡單提一下。首先End()是以Range單元格為基準定位到其上、下、左、右最后一個有數(shù)據(jù)的單元格。

xlup上; xldown下; xltoleft左; xltoright右

Offset()是以當前單元格為基準根據(jù)括號中的內(nèi)容進行對應移動。Offset(行數(shù),列數(shù))。如Offset(1,0)向下移一行,移0列。

定位的問題解決后,便是一個本文的重點:【選擇性粘貼】

選擇性粘貼作為本文的一大難點,涉及到的英文很多,但是沒關系,看看這兩張圖,會容易理解得多。首先,VBA中想要使用選擇性粘貼這個功能,可以用Range對象的PasteSpecial方法。它與Excel函數(shù)一樣,有參數(shù)。語法為:

PasteSpecial(Paste,Operation,SkipBlanks,Transpose)?

PasteSpecial(粘貼方式,運算方式,是否跳過空白格,是否轉置)


通過我們常用的選擇性粘貼的圖來對比學習,要容易理解一些:

仔細觀察圖片與語法,你會發(fā)現(xiàn),對應四個參數(shù)的恰好就是圖片中的四個功能選項(粘貼、操作、跳過空單元、轉置)

問題來了,參數(shù)如何編寫呢?

對照上圖,我們需要執(zhí)行的操作為:執(zhí)行粘貼【值】,操作【無】,不需要跳過單元格,需要轉置。則代碼為:

  • 代碼

'step5:選擇性粘貼內(nèi)容' Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ ? ? ? ?:=False, Transpose:=True

  • 運行結果

功能基本上都完畢了,最后便是第三步:完成粘貼后進行主頁工作表內(nèi)容清空。

三、完成粘貼后進行主頁工作表內(nèi)容清空

相信到第三步,你的心里大多已經(jīng)有了思路。首先,跳轉主頁工作表,很簡單:

  • 代碼

'step6:返回主頁清空內(nèi)容'?

Sheets("主頁").Select

清空內(nèi)容也很簡單,在選中的單元格區(qū)域進行調(diào)用清空方法即可。

  • 代碼

Selection.ClearContents

到這里,所有程序功能便編寫完畢了。完整代碼如下:

為了方便錄入,我們可以對表格進行美化,之后添加一個圖形作為按鈕來觸發(fā)VBA程序。

創(chuàng)建好圖形后,右鍵點擊指定宏,選擇宏名即可。

最后,你可以將整張工作表進行鎖定,只提供三個單元格供于使用者進行輸入。

在鎖定之前,先取消掉單元格的保護模式。

好了,以上便是本期的所有內(nèi)容啦。目前這個程序并不完善,不具備查重功能也不具備錯誤提示,只作為基礎練習所用。后面,我們會進一步的運用更多的VBA知識對此程序進行進一步的完善。下次再見啦~


VBA基礎實戰(zhàn)之自動化錄入表單的評論 (共 條)

分享到微博請遵守國家法律
寿宁县| 出国| 阜城县| 武城县| 佛山市| 金湖县| 伽师县| 孝感市| 车致| 永和县| 壶关县| 达拉特旗| 长治县| 定西市| 富裕县| 孝昌县| 岫岩| 屯留县| 泌阳县| 阿坝县| 晋中市| 新化县| 永德县| 吉木乃县| 浦东新区| 邹城市| 永顺县| 河间市| 通海县| 格尔木市| 黑山县| 蒲城县| 子洲县| 鲁甸县| 阿克陶县| 莆田市| 启东市| 禹州市| 吉水县| 泗阳县| 凉城县|