九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
VBA編程講解001——如何編寫宏程序

1前言

2為什么是VBA

我之前也嘗試學習過網(wǎng)上流傳比較廣泛的Python和C#語言。對于我這種零編程基礎(chǔ)的人來說,跟著網(wǎng)上的教程一步一步的學習,也能夠?qū)W會,但是學習成本比較高。使用這些語言搜索語句時,不如VBA這種老舊的語言快捷,需要一定的門檻。比如,使用VBA語言,直接查詢“VBA xx功能”就能找到相關(guān)的語句,如果使用C#的話,就需要在大量的語句中,找到自己需要的那一條,還沒有注解,實在有點難。

如果使用C#的話,確實更加靈活高效(例如下圖的軟件,就是使用C#編寫的小軟件)。建議各位讀者自己學習其它更高效的語言,能夠少走彎路,更具有普適性。

最后我用來實現(xiàn)在Excel中編寫工具箱的語言,使用的還是Excel自帶編寫宏程序的VB語言,學習成本更低,更快上手。

3如何學習VBA

首先需要聲明的是,我基本上沒有編寫程序的能力,我的程序大部分都是思考我需要的功能,通過以下方式編寫。

  • 思考功能,例如“如何獲取工作表的最后一行”,在搜索引擎搜索:“工作表最后一行 VBA”。在別人的程序中復(fù)制。

  • 使用Excel自帶的錄制宏功能,手動操作一遍,再把程序復(fù)制下來,根據(jù)實際情況調(diào)整。

  • 找同事的程序,截取需要的功能,改造。

使用VBA編程上手門檻低,一般情況下只要有基礎(chǔ)的程序能力(例如大學學習過相關(guān)C語言等課程,或能夠熟練使用Excel里的公式)就可以直接上手實現(xiàn)一些簡單的功能,在編寫功能中不斷學習基礎(chǔ)的語句。

但同時也要指出,由于我個人因為沒有系統(tǒng)的學習過VBA語言,所以我的知識體系比較片面,可能會因為不知道某個語句的存在,重復(fù)編寫很多語句,只為了實現(xiàn)某個簡單的功能。

例如,插入一行,只需要編寫“Rows('10:10').Insert”,如果你不會使用循環(huán)語句,卻想要插入100行時,將上述語句重復(fù)100次,也能達到效果。如果會使用循環(huán)語句,則很簡單。

4如何創(chuàng)建VBA

創(chuàng)建宏程序(Visual Basic)、錄制宏程序(錄制宏)、使用宏程序(宏),都在Excel上方的開發(fā)工具中。

進入Visual Basic中,選擇需要儲存程序的工作薄,創(chuàng)建模塊,以后我們的程序都會在模塊中編寫。(個人習慣使用模塊,也可以在Sheet或ThisWorkbook中編寫)

一般的程序,是以Sub為開頭的組合,例如下圖,為一個程序名為SuperLink的宏程序。

上圖功能為運行一個彈窗“Hello World”的程序。(沒有人在編程生涯中能拒絕Hello World)

5編寫程序?qū)嵗ㄒ猿溄幽夸洖槔?/span>

我們以某一個需求功能為例,一步一步展示我的編程步驟,最后展示一下完整的程序。

5.1需求功能

我們常用的工作簿中工作表過多,不方便查找,如果能給工作簿做一個目錄,就可以方便的核對該工作簿中有哪些工作表。如果能給這個目錄做超鏈接,就能更好的直接連接到需要的工作表處。

5.2編程過程

5.2.1建立目錄工作表

目錄,需要存放在一個工作表中,我們的第一個需求,就是建立一個目錄工作表,并起一個名字,比如就叫SuperLink。

搜索或錄制宏得知,建立工作表的語句為:

Sheets.Add after:=Sheets(1)

Sheets(2).Name = 'SuperLink'

該語句會在原工作簿第一個工作表后插入一個工作表,并修改名字為SuperLink。

完成本步驟后,可運行程序嘗試效果(F5為直接運行,F(xiàn)8為逐語句運行)

5.2.2讀取每一個工作表名字并寫入目錄頁

搜索得知,讀取工作表名字的語句為:

For i = 1 To Worksheets.Count

    link = Sheets(i).Name

next i

此處把每一個工作表的名字都寫入了一個叫l(wèi)ink的變量中(名字隨便起)

在循環(huán)中,每次link都被覆蓋掉了,沒有保存下來,所以我們要將這個名字儲存到上一步建立的SuperLink工作表中。所以語句將變成

For i = 1 To Worksheets.Count

    link = Sheets(i).Name

    Sheets('SuperLink').Range('A' + Trim(Str(i))) = link

next i

新加的語句,是將每一次的Link變量的值,儲存到SuperLink工作表的A列中,隨著循環(huán)語句i的增加,分別儲存到A1、A2、A3……單元格中。

目前完整程序?qū)⑹牵?/span>

Sub 基礎(chǔ)程序01—SuperLink() '建立超鏈接目錄superlink

    Sheets.Add after:=Sheets(1)

    Sheets(2).Name = 'SuperLink'

    For i = 1 To Worksheets.Count

        link = Sheets(i).Name

        Sheets('SuperLink').Range('A' + Trim(Str(i))) = link

    next i

End Sub

Sub程序名字按自己需求隨便起,所有單引號后的內(nèi)容均自動識別為批注內(nèi)容。注意符號均應(yīng)為英文。完成本步驟后,可運行程序嘗試效果。

5.2.3為工作表名稱增加超鏈接

搜索得知,添加超鏈接的語句為:

With Sheets('SuperLink')

    .Hyperlinks.Add Anchor:=.Range('A' + Trim(Str(i))), Address:='', SubAddress:= ''' + link + ''' + '!A1'

    .Range('A' + Trim(Str(i))) = link

End With

With語句是為了省略原語句中重復(fù)的值。

Sheets('SuperLink').Range('A' + Trim(Str(i))) = link

等同于

With Sheets('SuperLink')

    .Range('A' + Trim(Str(i))) = link

End With

注意range前需要有.代表.前的內(nèi)容為with的值。(表達不太好,自行理解下)

Hyperlink.add為增加超鏈接的語句。連接到名稱為Link的工作表的A1單元格。

實用中發(fā)現(xiàn),直接增加超鏈接,部分文字格式可能會有問題(例如自動轉(zhuǎn)化為數(shù)字格式或日期格式,導(dǎo)致名稱錯誤)所以增加超鏈接后,又重新賦予了一遍單元格名稱。

至此程序編寫完成。

5.3完整程序展示

與上文相比,我的程序又增加了如下功能:

  • 用dim提前定義使用的變量,不定義也能使用,不過建議大家養(yǎng)成良好的習慣,提前定義,方便使用。

  • 刪除原工作薄中,名稱為Superlink的工作表,防止重名。

  • 定義目錄頁的A列寬度,方便查看。

  • 為目錄頁相關(guān)項保留工作表名稱顏色。

  • 生成完畢后彈窗說明。

使用語句除了講解過了,就是for循環(huán)語句和if判斷語句,都比較好理解,僅看英文的意思,就能夠清楚功能。大家也可以根據(jù)自己的需要,增加自己額外的功能。

希望各位能夠編寫出自己需要的小程序。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
VBA編程問答(第1輯)
數(shù)控編程最高境界,教你用宏程序編程的方法,實例介紹簡單詳細!
09年計算機一級輔導(dǎo):Excel中BASIC程序的運行(VBA是兼容了BASIC編程語言的命令和語法的EXCEL應(yīng)用軟件)
宏程序入門第二講,外錐面的編程與加工
宏程序編程實例,分析得很到位,一學便會
vba十四課
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服