日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

VBA基础知识小结

發布時間:2024/1/17 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 VBA基础知识小结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、什么是宏?

1、? 宏錄制器好比就是個錄像機,它具備有錄像機的錄制和播放功能,當然錄像機錄制的是視頻資料,而宏錄制器錄制的剛是操作命令集,即宏。

2、? 引伸到Excel中,當你打開宏的錄制功能時,宏錄制器會像錄像機一樣將你在Excel中的大多數操作進行錄制,并且可對這些錄制內容(即代碼)進行回放和編輯。

二、實例演示宏錄制,執行(回放)的過程

1、? 打開Excel工作表→工具→宏→錄制新宏→宏的名稱→確定→先中A1單元格→字體改為12號字→顏色橙色→停止錄制宏。

2、? 回放,選中2月工作表→工具→宏→執行宏。回放完成。

3、? 修改宏,工具→宏→Visual Basic編輯器(Alt+F11)→雙擊模塊1→正文前加dim sht as wotksheet

For each sht in thisworkbook.worksheets

Sht.select

Next

End sub

右擊→smart indent indent procedure 美化代碼

4、? 運行子過程/用戶窗體→視圖Microslft Excel

5、? Crtl+F11,右擊→VBA FriendAdd Line Nunbers

6、? 分析,sub后面為宏的名字

'開頭為注釋,不被執行,

10行為dim語言,

20-210行為for each

With 語句是宏的主要語句通常和selection font并用

Name = “微軟雅黑

Strikethrough = false

……

Colorindex = xlautomatic

不影響宏執行可刪除

刪除多余的代碼提高運行速度

三、介紹一個批量打印文檔的宏

Sub sanjteprinter()

Application sereenupdating = false

With application.file search

.lookin = “d:我的文檔桌面已經實施行”?? 此處為可變

.filetype = msofile typecxcelworkbook

.search subfolders = true

If execute>0 then

For I = 1 to.foundfiles.count

Workbooks.openfilename:=foundfiles(i)

Worksheets(1).printout

Activeworkbook.closesavechanges:=false

Next

Else

Magbox”沒有找到任何工作簿文件

End if

End with

Application.screenupdating=true

End sub

?單擊→運行子過程/用戶窗體→確定

Sub過程與程序流程控制語句

一、sub過程

1、? 一個過程就是一組完成所需操作的VBA代碼的組合;

2、? VBA的過程主要包括“sub過程”和“Function過程”兩種;

3、? Sub過程不可以返回值,Function過程可以返回值。

二、聲明sub過程

1、? 錄制的“宏”就是一個簡單的sub過程,使用錄制宏功能只能生成sub過程的代碼;

2、? Sub過程的特點:

(1)?????? 以“sub過程名()”開頭,以“End sub”結尾;

(2)?????? Sub過程一般保存在模塊里;

(3)?????? 不返回運行結果。

3、? 聲明sub過程語法形式:

[public/private][static]sub過程名稱([參數1,參數2……]

公共過程/私有過程,二選一

[語句塊]

[Exit sub]

[語句塊]

End sub

打開VBA編輯器→右擊→插入→模塊→雙擊模塊→錄入:

Sub mysub()

Msgbox”這是我的第一個VBA過程

End sub

→單擊運行子過程/用戶窗體→確定

不寫參數默認為公共過程

Private sub siyou()

Msgbox”這是我的私有過程

End sub

4、? 同一個過程執行另一個過程:

(1)?????? 輸入過程名稱以及參數,參數用逗號隔開;

過程名[參數1,參數2,……]

Sub test()

‘mysub

siyou

End sub

打開工具→宏→mysub→運行→確定

打開工具→宏→test→運行→確定

(2)?????? 在過程名稱以及參數前使用call關鍵字,參粗線條用括號括起來,并用逗號隔開;

Call過程名[(參數1,參數2,……)]

Sub rest()

‘mysub

‘siyou’第一種方法

Call mysub

Callsiyou

End sub

打開→工具→宏→test→執行宏→確定

?

?

5、利用application對像的run方法:

Application.run表示過程名的學符串(或字符串變量)[參數1,參數2,……]

Sub test()

‘mysub

‘siyou’第一種方法

‘call mysub

‘call siyou’第二種方法

Application.run “mysub”

Dim a as string

A = “siyou”

Application.run a

End sub

單擊→運行子過程/用戶窗體→確定

三、判斷與循環語句:

順序結構判斷分之,循環語句

(一)IF語句

IF邏輯表達式樣 then

語句塊1

[else

??? 語句塊2]?? 可選

End if

羅輯表達式值是否為真

????????? ?↓是????? ↓否

?????? 語句塊???????

?????????? ???????

?????????? ??????

比一比,看誰算的又對又快!

11+19=

回答完畢

Sub出題()生成新的題目

[d6].value = int(rnd * 20)

[f6[.ralue = int(rnd * 20)

End sub

Sub dt()

If[h6].value = [d6].value+[f6].value then ‘檢查是否答對

End if

Call 出題 調用過程,得新生成題目

End sub

添加if[h6].value<>[d6],value+[f6].value then’檢查是否答對

Magbox”答錯了,繼續努力!

End if

Else

邏輯表達式值是否為真

是→語名塊1/不是→語句塊2

注釋前面語句→視圖→工具→編輯→設置注釋塊

If[h6].value = [d6].value + [f6].value the ‘檢查是否答對

Msgbox”答對了,你真棒!

Else

Msgbox”答錯了,繼續努力!

End if

Call 出題 調用過程,重新生成題目

End sub

If邏輯表達式1是否為真? then

語句1

[else if邏輯表達式2 then

語句2

[else if] 邏輯表達3 then

語句3

……

Else

語句塊n]

End if

判斷H6單元格是否為空

Sub test()

If [h6].value = “” then

Msgbox”還沒有輸入答案!

Else if [h6].value = [d6].value + [f6].value then ‘檢查是否答對

Msgbox”答對了,你真棒!

Else

Msgbox”答錯了,繼續努力!

End if

Call 出題

End sub

插入窗體控件,命名為答題

IF使用兩次判斷

(二)Select case 語句(三種更多選擇項做選擇)

Select case? 測試表達式

Case 表達式列表1

語句塊1

Case 表達式列表2

語句塊2

Case 表達式列表3

語句塊3

……

Case 表達式列表n

語句塊 n

[case else

??? 語句塊 n + 1]

End select

測試表達式必須為數值表達式或字符串表達式:

表達式列表可以是用逗事情分開的表達式,也可以使用tois關鍵字,如“

Case1,1,2,3,4

Case 1 to 4

Case is < 4

Case語句后面可以使用多重表達工,各表達式的數據類型可以不相同,它們之間是邏輯或的關系如:

Case 1 to 4 ,”a”?? ‘數值或文本

Sub sll()

Select case[f6].value

Case””

Msgvox”還沒有輸入答案

Case [d6].value + [f6].value

Msgbox”答對了,你真棒!

Case else

Msgbox”答錯了,請繼續努力!

End select

Call出題

Edn sub

插入窗體控件,命名為答案

Sub sl()

Dim dj as string

Select case [d3].value

Case is >= 90

Dj = “A”

Case is >= 80

Dj = “B”

Case is >= 60

Dj = “C”

Case is >= 200

Dj = “D”

Case else

Dj = “E”

End select

[e3].value = dj

End sub

()for循環語句

For-------next 循環語句

For循環變量 = 初值to 終值[step步長]

循環體

[next for]

循環體

Next[循環變量] []內為可選參數

初值小于終值,步長大于1

循環變量初始化

???? ?

循環變量<=(>=)終值

?????

????? Y

?????

循環體

?

循環變量 = 循環變量 + 步長

循環語句結束

Sub sum 1 to 100()

Dim mysum as long,I as integer

For I = 1 to 100 step 1

Mysum = mysum + i

Debug print i

Next i

Msgbox”1100的自然數和是:”& mysum”

End sub

Sub 等級for()

Dim dj as string,I as integer

For I = 14 to 143 srep 1

Select case cells(I,”d”).value

Case is >=90

Dj = “A”

Case is >=80

Dj = “B”

Case is >=60

Dj = “C”

Case is >=20

Dj = “D”

Case else

Dj = “E”

End select

End sub

(四)For each-------next循環語句

For each元素變量in對象集合

語句塊

[next for]

語句塊

Next[元素變量]

Sub 等級 each()

Dim dj as string, rng as range

For each rng in range(“d14”:”d143”)

Select case rng.value

Case is >=90

Dj = “A”

Case is >=80

Dj = “B”

Case is >=60

Dj = “C”

Case is >=20

Dj = “D”

Case else

Dj = “E”

End select

Rng.lffser(0,1).value = dj

Next rng

End sub

()do while循環語句

1、開頭判斷循環語句條件

Do [wihle循環條件]

循環體

[next do]

循環體

Loop

2、結尾判斷循環語句條件

Do

循環體

[next do]

循環體

Loop[wihle循環條件]

第二種比第一種多執行一次循環部分的語句

開頭判斷循環語句流程圖

轉載于:https://www.cnblogs.com/snake-hand/archive/2010/04/25/2452321.html

總結

以上是生活随笔為你收集整理的VBA基础知识小结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。