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

打開APP
userphoto
未登錄

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

開通VIP
第一章、Excel VBA基礎知識

01-01、Excel VBA簡介

1.VBA是什么,能干什么

VBA可以說是一種編程語言,是VB的分支

VBA的作用,可以將重復的Excel工作簡單化

2.VBA具備的基礎知識

2.1基礎操作,能發(fā)現(xiàn)Excel軟件的局限性

2.2有一定的函數(shù)功底

2.3會VB語言(會VB語言更好,不一定一定需要)

3.保存

Excel啟用宏工作簿,可以防止代碼丟失

 

01-02、宏在工作中的運用

1.宏的定義

宏:macro  形容詞:巨大的,大量的,宏觀的  名詞:【電腦】巨(宏)指令  

定義:椅子可以自動執(zhí)行的代碼(VBA)

錄制宏相當于攝像機的功能

2.錄制宏

在開發(fā)工具中的錄制宏中進行宏的錄制

重復執(zhí)行相同的操作??梢钥紤]用宏

總結:

優(yōu)點:重復執(zhí)行相同操作,提高工作效率

確定:不夠智能化,無法交互工作,代碼冗余

解決方法:VBA  即是用寫代碼的方法代替錄制宏

3.宏在Excel中的地位

雖然宏看起來不夠靈活,但對于學習VBA編程是非常重要的。

3.1提高代碼編寫效率

3.2幫助學習VBA知識

 

01-03、VBA基礎知識

1.VBA概念

Visual Basic for Applications(VBA)是一種Visual Basic的一種宏語言,主要能用來擴展Windows的應用程式功能

VBA是寄生于VB應用程序的版本,必須依賴于父程序,如EXCEL,CAD,CORELDRAW

2.VBA和VB的區(qū)別

2.1. VB是編寫應用程序,而VBA是使已有的應用程序(EXCEL、CAD)自動化

2.2.VB具有自己的開發(fā)環(huán)境,而VBA必須寄生于已有的應用程序.

2.3.運行VB開發(fā)的應用程序,不必安裝VB,而VBA開發(fā)的程序必須依賴于它的父應用程序

3.VBA的用途

3.1.規(guī)范用戶的操作,控制用戶的操作行為

3.2.操作界面人性化,方便用戶操作

3.3.多步驟,重復步驟可以通過執(zhí)行VBA代碼來迅速實現(xiàn)

3.4.實現(xiàn)一些無法實現(xiàn)的功能

4.VBA功能展示

 

01-04、Excel VAB窗口介紹

1.VBE就是VBA的編輯窗口

1.1按住ALT+F11快捷鍵

1.2開發(fā)工具-Visual Basic

2.VBE窗口簡介

2.1立即窗口:即使可以看到結果

2.2本地窗口:按F8鍵可以看到程序運行的步驟和每一步的結果

3.過程(子過程和函數(shù)過程)

3.1一般過程

Sub aaa()

End Sub

3.2自定義函數(shù)過程

Function ff()

End Functiom

4.第一個VBA程序

Sub 我的第一個程序()
MsgBox "我會VBA啦!"
End Sub

5.運行宏的方法,直接運行和圖像運行

圖像運行:在Excel菜單中點插入--圖形--畫一個圖形--點擊圖形右鍵--指定宏--確定即可

 

01-05、Excel VBA代碼編寫規(guī)則

1.VBE常見的設置

1.1工具--選項   里面可以修改編寫代碼時的字體顏色和字號等

1.2注釋  不會參與運行,開發(fā)自己看的,需要在代碼前加單引號(’)

統(tǒng)一加上解除注釋塊:選上工具欄的工具--右鍵--調(diào)出編輯窗口,上面有一個解除注釋塊和一個設置注釋塊。

1.3代碼的運行

上面的符號分別代表運行,暫停和終止運行的命令

F8可以一步一步的運行代碼,可以檢查代碼的問題所在

1.4代碼的幫助

將代碼選中(抹黑),按F1即可以出來代碼的使用方法

2.代碼的編寫規(guī)則

2.1子過程

2.2函數(shù)過程

3.代碼的換行(下劃線+空格+換行)

 

01-06對象

1對象:現(xiàn)實中的對象,是真實存在的物體

在Excel中的對象指:工作薄、工作表、單元格、圖表、透視表之類的

2.集合:也是一種特殊的對象,不過沒有指定的哪個對象,知識一種統(tǒng)稱,如“人”就是一個集合的叫法,在Excel中的集合如:workbooks,worksheets,cells等等

3.常用的代碼操作對象

3.1工作薄(Workbooks)

workbooks(N)第N個工作薄

workbooks(“工作薄名”)

ActiveWorkbooks活動工作薄

ThisWorkbook代碼所在的工作薄

3.2工作表(Worksheets)

Sheets(N) 第N個工作表
Sheets("工作表名")
SheetN 第N個工作表
ActiveSheet 活動工作表
worksheets 與 Sheets的區(qū)別

3.3單元格(cells)

Range ("單元格地址")
Cells(行號,列號)
[A1]單元格簡寫
Activecell 活動單元格
Selection 當前被選取的區(qū)域

 

01-07、屬性

VBA屬性:指對象所具有的特征

人的屬性:姓名,年齡,身份證號,住址等

例:sub 屬性()

Debug.Print sheet1.Name  '.name即為工作表sheet1的屬性

Debug.Print Sheet1.Range("a1").Value  '.value即為工作表sheet1的屬性

End Sub

例:Sub 屬性賦值()
Sheet2.Name = "改變自己"
Sheet2.Range("a1") = "學習VBA"
End Sub

 

01-08、方法

方法:實際上是對對象的一種操作,他是一種動作,一種行為

例:

Sub 選擇方法()
Range("a1:a10").Select ‘選擇了a1:a10單元格,沒有指定工作表就默認為當前活動工作表’
End Sub

Sub 復制方法()
Sheet1.Range("a1:a10") = 1 '將1寫入表一的a1:a10區(qū)域
Sheet1.Range("a1:a10").Copy Sheet2.Range("a1") '將表一的a1:a10區(qū)域的值復制到表2的a1
End Sub

Sub 刪除方法()
Sheets(3).Delete
End Sub

 

01-09、常量和變量

1.常量:常量是定義了之后不會變化的量

常量定義格式:Const 常量名=常量表達式

Sub 常量()

Const pi=3.1415926

End Sub

2.變量:在定義之后還能再次賦值的量

變量定義格式:Dim 變量 As 變量類型

Sub 變量()

Dim a As Integer

a=344 '此時a=344

a=3455  ‘再次賦值a=3455

End Sub

3.常量和變量的應用

Sub 應用()

Const pi=3.1415926

Dim a As Integer

a-200

Debug.print pi*a

End Sub

4.注意事項

4.1.VBA允許使用未定義的變量,默認是變體變量

4.2.變量強制性聲明Option Explicit  或者在工具-編輯中設置每個程序都必須有變量聲明

5.變量的命名規(guī)則

5.1以字母開頭

5.2不能用保留字 如if end等

5.3字符個數(shù)不能超過255

5.4統(tǒng)一范圍內(nèi)必須是唯一的

 

01-10、數(shù)據(jù)類型

1.VBA中常見的數(shù)據(jù)類型

' 類型 注釋 簡寫 占用內(nèi)存
' Integer 整型 % 2Byte
' Single 單精度 ! 4Byte
' Double 雙精度 # 8Byte
' Long 長整型 & 4Byte
' String 字符型 $ 定長或變長( 變長字符串最多可包含大約 20 億 ( 2^31)個字符。 定長字符串可包含 1 到大約 64K ( 2^16 ) 個字符。)
' Currency 貨幣型 @ 8Byte

例:

Sub 數(shù)據(jù)類型()
Dim a As Integer
Dim b%
End Sub

Sub 多數(shù)據(jù)類型聲明()
Dim a As Integer, b As Single, c As String
Dim d%, e!, f$
End Sub ‘中間用,隔開

 

01-11、判斷語句之if

VBA中的IF條件判斷語句,就像函數(shù)中的IF一樣,可以單條件也可以多條件

例1:

Sub 判斷語句()
Dim a As Integer, b As Integer
a = 2
b = 2
If a = b Then MsgBox "相等"
End Sub

例2:

'if判斷語句有換行的話,就需要end if來結束
Sub 判斷語句2()
Dim a As Integer, b As Integer
a = 2
b = 2
If a = b Then
MsgBox "相等"
End If
End Sub

例3:

'if……then……else……end if
Sub 判斷語句3()
Dim a As Integer, b As Integer
a = 2
b = 3
If a = b Then
MsgBox "相等"
Else
MsgBox "不相等"
End If
End Sub

 

01-12、判斷語句if的多條件

例:

Sub 多條件判斷()

‘if 條件 then 結果  elseif  條件  then 結果 elseif  條件  then 結果elseif  條件  then 結果……else 結果……end if
If Sheet1.Range("b1") >= 90 Then
Sheet1.Range("b2") = "優(yōu)秀"
ElseIf Sheet1.Range("b1") >= 80 Then
Sheet1.Range("b2") = "良好"
ElseIf Sheet1.Range("b1") >= 60 Then
Sheet1.Range("b2") = "中等"
Else
Sheet1.Range("b2") = "較差"
End If
End Sub

VBA中的IIF函數(shù)與工作表函數(shù)if的語法結構是一致的

例單條件:

Sub IIF函數(shù)應用()
Cells(2, 3) = IIf(Cells(1, 2) > 80, "優(yōu)秀", "不優(yōu)秀")
End Sub

例多條件:

Sub IIF函數(shù)應用2()
Cells(2, 3) = IIf(Cells(1, 2) >= 90, "優(yōu)秀", _
IIf(Cells(1, 2) >= 80, "良好", IIf(Cells(1, 2) >= 60, "中等", "較差")))
End Sub

01-12B、if條件判斷小結

1.單行形式1(If...Then)
If 條件判斷 Then 條件成立結果
注意 在單行形式中,按照 If...Then 判斷的結果也可以執(zhí)行多條語句。
所有語句必須在同一行上并且以冒號(:)分開。

Sub test()
If 1 > 10 Then a = a + 1: b = 1 + a: c = 1 + b
End Sub

2. 單行形式1(If 條件判斷 Then 條件成立 Else 條件不成立)

Sub test2()
If 1 > 1 Then MsgBox "yes" Else MsgBox "no"
End Sub

3.塊形式(If...Then…End)
If 條件判斷 Then
條件成立結果
End If

Sub test3()
If 11 > 10 Then
a = 1 + a
b = 1 + a
c = 1 + b
End If
End Sub

4.塊形式的If嵌套

 If 條件判斷 Then

成立時的結果

ElseIf 條件判斷 Then

成立時的結果

 ……

 Else

不成立時的結果

End If

例:

If Sheet1.Range("b1") >= 90 Then
Sheet1.Range("b2") = "優(yōu)秀"
ElseIf Sheet1.Range("b1") >= 80 Then
Sheet1.Range("b2") = "良好"
ElseIf Sheet1.Range("b1") >= 60 Then
Sheet1.Range("b2") = "中等"
Else
Sheet1.Range("b2") = "較差"
End If
End Sub

 

 01-13、判斷語句之SELECT

Select Case 語句 根據(jù)表達式的值來決定執(zhí)行幾組語句中的一種

例1:

Sub select多條件判斷1()
i = 1
Select Case i
Case Is > 0
MsgBox "正數(shù)"
Case Else
MsgBox "負數(shù)"
End Select
End Sub

例2:

Sub select多條件判斷()
Select Case Sheet1.[d1].Value
Case "A"
Sheet1.[a3] = "A型血的你,不是一個怎么樣的人"
Case "B"
Sheet1.[a3] = "B型血的你,更不是一個怎么樣的人"
Case "AB"
Sheet1.[a3] = "AB型血的你,更不是一個怎么樣的人"
Case "O"
Sheet1.[a3] = "O型血的你,是個不做的人"
End Select
End Sub

 

01-14、循環(huán)語句之do……loop

do……loop   循環(huán)語句,直到循環(huán)到滿足某個條件

Sub 循環(huán)()
Dim a As Integer
Do
a = a + 1
If a > 10 Then
MsgBox "終于大于10"
Exit Do
End If
Loop
End Sub

 

01-15、循環(huán)語句之do……loop實例

例:

程序: 

Sub 等級()
Dim rs As Integer
rs = 1
Do
rs = rs + 1
If rs > 10 Then
Exit Do
Else
If Cells(rs, 2) > 90 Then Cells(rs, 3) = "√"
End If
Loop
End Sub

 

01-16、循環(huán)語句之do while……loop

do while  當……的時候,里面包含一個if函數(shù)的判斷

根據(jù)上面的例子進行改寫:

Sub 循環(huán)while()
Dim rs As Integer
rs = 1
Do While Cells(rs, 2) <>""   '當單元格不等于空的時候
rs = rs + 1
If Cells(rs, 2) > 90 Then Cells(rs, 3) = "√"
Loop
End Sub

 

01-17、循環(huán)語句之do until……loop

do until 直到什么的時候結束

根據(jù)上面的例子進行改寫:

Sub 循環(huán)until()
Dim rs As Integer
rs = 1
Do Until Cells(rs, 2) = "" '該單元格為空嗎,為空的話就執(zhí)行l(wèi)oop,否則就繼續(xù)
rs = rs + 1
If Cells(rs, 2) > 90 Then Cells(rs, 3) = "√"
Loop
End Sub

例1:隔行填色

代碼:

Sub 隔行填色()
Dim rs As Integer
rs = 2
Do Until Sheet1.Range("a" & rs) = ""
Sheet1.Range("a" & rs & ":" & "g" & rs).Interior.ColorIndex = 7
rs = rs + 2
Loop
End Sub

 

01-18、循環(huán)語句之while和until位置變化

while和until不但可以放在do后面,也可以放在loop后面

事實上有時候循環(huán)在最后一行進行判斷,更具有意義

Sub doloop的最后判斷循環(huán)()
Dim pss As String, i As Single
Do
i = i + 1
If i > 3 Then Exit Do '輸入3次后就退出循環(huán),只有3次機會
pss = InputBox("請輸入密碼")
Loop Until pss = "123" '當密碼為123的時候結束循環(huán)
End Sub

Sub doloop的最后判斷循環(huán)()
Dim pss As String, i As Single
Do
i = i + 1
If i > 3 Then Exit Do '輸入3次后就退出循環(huán),只有3次機會
pss = InputBox("請輸入密碼")
Loop while pss = "123" '當密碼不是123的時候結束循環(huán)
End Sub

 

01-18B、循環(huán)語句do……loop小結

Do [{While | Until} 表達式]  ‘while 和 until二選一
[執(zhí)行的一條或多條語句]
[Exit Do]
[[執(zhí)行的一條或多條語句]

Loop

while:當這個條件為True時就   循環(huán)

until:直到這個條件為True時就 跳出循環(huán)

或者可以使用下面這種語法:

Do
[執(zhí)行的一條或多條語句]
[Exit Do]
[執(zhí)行的一條或多條語句]

Loop [{While| Until}表達式]

用Do…Loop循環(huán)要注意的幾點:

1.  While與Until是放在Do后面還是Loop后面,取決于是先判斷再循環(huán),還是先循環(huán)再判斷。前者則在Do后面,后者則在Loop后面。

2.  可以在Do...Loop中的任何位置放置任意個數(shù)的 Exit Do 語句,隨時跳出 Do...Loop 循環(huán)。

3.  Exit Do ,Do...Loop,If...Then通常結合使用.

4.  如果 Exit Do 使用在嵌套的 Do...Loop 語句中,則 Exit Do 會將控制權轉(zhuǎn)移到 Exit Do 所在位置的外層循環(huán)。

例:

Sub test()

Dim a%

Do

a   = a + 1

If a > 10 Then

MsgBox a & "終于大于10"

Exit Do

End If

Loop

End Sub

 

Sub Test2()'注意這是一個死循環(huán),按F8運行(中止死循環(huán):ctrl+暫停鍵)

Do

b = b + 1

    Do

        a = a + 1

        If a > 3 Then MsgBox "即將跳出內(nèi)層循環(huán)": Exit Do

    Loop

MsgBox "即將進行外層循環(huán)"

Loop

End Sub

 

01-19、循環(huán)語句for each ……next

當需要處理集合成員時,一般會用for each……next,實際上就是處理對象

例子:在a2:a10單元格中,A1的全部標記為紅色

Sub foreach循環(huán)1()
Dim rng As Range, n As Integer
For Each rng In Sheet1.Range("a2:a10") '取出a2:a10中的內(nèi)容
If rng = "A1" Then rng.Interior.ColorIndex = 3  '填充顏色
Next
End Sub

例2:取出工作表的名稱

Sub foreach循環(huán)2()
Dim wsh As Worksheet, a As Byte
For Each wsh In Worksheets  '取出工作表中的每個sheet表
n = n + 1
Sheet1.Cells(n, 3) =  wsh.Name  '將取出的工作表名稱放入第3 列
Next
End Sub

 

01-20、循環(huán)語句之for……next

for……next也是循環(huán)語句,與之前的do……loop不同的是for……next含有一個內(nèi)置的計數(shù)器

例:從1一直加到100

Sub fornext循環(huán)()
Dim i As Integer, j As Integer
For i = 1 To 100
j = j + i
Next
MsgBox j
End Sub

例:知道單價和數(shù)量計算金額

Sub fornext循環(huán)2()
Dim rng As Integer
For rng = 2 To 21
Sheet2.Cells(rng, 4) = Sheet2.Cells(rng, 2) * Sheet2.Cells(rng, 3)
Next
End Sub

 

01-20B、For...NEXT小結與實例

For...Next 語句
以指定次數(shù)來重復執(zhí)行一組語句

語法
For 計數(shù)變量 = 初始值 To 終止值 [Step 步長值]
[執(zhí)行的一條或多條語句]
[Exit For]
[執(zhí)行的一條或多條語句]
Next [計數(shù)變量]可以忽略不寫

注意:1.循環(huán)中可以在任何位置放置任意個 Exit For 語句,隨時退出循環(huán)。
2.Exit For與 If...Then經(jīng)常一起使用,目的是:找到符合條件后,跳出循環(huán),而不必再進行不必要的循環(huán)。

例:

Sub fornext示例()
Dim i As Integer, j As Integer
For i = 2 To 16 Step 1
If Sheet3.Cells(i, 1) = "2班" Then Exit For
Next i
'計算出第一次出現(xiàn)2班人數(shù)的位置
For j = 2 To 16 Step 1
If Sheet3.Cells(j, 1) = "3班" Then Exit For
Next j
'計算出第一次出現(xiàn)3班人數(shù)的位置
MsgBox "2班的人數(shù)是" & j - i
'用第一次出現(xiàn)3班的位置減去2班出現(xiàn)的位置即為2班的人數(shù)
End Sub

3.可以將一個 For...Next 循環(huán)放置在另一個 For...Next 循環(huán)中,組成嵌套循環(huán)。
For I = 1 To 10
For J = 1 To 10
For K = 1 To 10
...
Next K
Next J
Next I

例:

01-21、用語句for……next制作九九乘法表

 

01-22、exit與end語句

exit 是退出當前語句

1、exit do   2、exit for  3、exit function  4、exit sub

例:找第一次出現(xiàn)田七的位置

Sub 田七位置()
Dim n As Integer
For n = 2 To 7
If Sheet1.Cells(n, 1) = "田七" Then Exit For
Next
MsgBox "田七首次出現(xiàn)的位置為" & n & "行"
End Sub

end結束一個過程或者塊

1、end     2、end if      3、end select     4、end sub

 

01-23、跳轉(zhuǎn)語句

GoTo line無條件的轉(zhuǎn)移到過程中指定的行

注意 太多的GoTo語句,會是程序代碼不容易月底及調(diào)試

盡可能使用結構化的控制語句(Do……loop,for……next,if then……else)

例:

Sub dotoline()
Dim str As String, k As Integer
123:
k = k + 1
If k > 3 Then Exit Sub
ste = InputBox("請登錄用戶名:")
If str <> "admin" Then GoTo 123
End Sub

例2:判斷是否遲到

1/3是時間里面的8:00

 

01-24、錯誤分支語句

計算總分:

需要知道錯誤發(fā)生在第幾行:

 

01-25、with語句

with語句,當對某個對象執(zhí)行一系列語句時,不用重復指出對象的名稱。

with的嵌套使用

 01-26、VBA與公式

 

01-27、VBA與函數(shù)1

Sub 帶工作表函數(shù)的計算()
Dim i As Integer
For i = 1 To 10
Sheet4.Cells(i, 4) = "=sum(a" & i & ":b" & i & ")"
Next
End Sub

 

Sub 公式帶引號的計算()
Cells(12, 1) = "=countif(a1:a10,"">9"")"
'當公式中含有引號的時候,就要將原來的引號再加上引號,及雙引號
Cells(13, 1) = "=sum(indirect(""a1:a10""))"
End Sub

01-28、VBA與函數(shù)2

借用工作表函數(shù)

Application.WorksheetFunction.   在VBA編輯窗口中輸入這樣的代碼,可以調(diào)用工作表函數(shù)

例如:Application.WorksheetFunction.Sum 

Sub 調(diào)用工作表函數(shù)()
MsgBox Application.WorksheetFunction.CountIf(Range("a1:a10"), "鋼筆")
MsgBox Application.CountIf(Range("a1:a10"), "鋼筆")
MsgBox WorksheetFunction.CountIf(Range("a1:a10"), "鋼筆")
End Sub

上面的例子說明Application和WorksheetFunction在調(diào)用函數(shù)的時候可以省略其中之一

Sub VBA函數(shù)()
MsgBox VBA.Format(Range("b1"), "yyyy年m月d日")
MsgBox Format(Range("b1"), "yyyy年m月d日")
End Sub

當VBA和工作表函數(shù)不夠用的時候,就需要用到自定義函數(shù)了,下面看從身份證中提取性別

'自定義函數(shù)()
Function sex(rng As Range)
sex = IIf(Mid(rng, 15, 3) Mod 2, "男", "女")
End Function

01-29、VBA與運算符

1)賦值運算符 :=

2)數(shù)學運算符: &(字符連接符)、+(加)、-(減)、Mod(取余)、\(整除)、*(乘)、/(除)、-(負號)、^(指數(shù))

3)邏輯運算符:Not(非)、And(與)、Or(或)、Xor(異或)、Eqv(相等)、Imp(隱含)

4)關系運算符: = (相同)、<>(不等)、>(大于)、<(小于)、>=(不小于)、<=(不大于)、Like

like用來比較兩個字符串?
Print 任何單一字符
* 零個或多個字符。
# 任何一個數(shù)字 (0–9)。
[charlist] charlist.中的任何單一字符?
[!charlist] 不在 charlist 中的任何單一字符。

例:

Sub likess()
a = 1 Like "[!2]"    '1不是非2中的任意一個
End Sub '按F8可以看到結果為True

 

01-30、like的運算符

 

01-31、like運算符的運用

例子:

代碼:

Sub 運用()
Dim i As Integer, j As Integer, n As Integer
For i = 2 To 6
     For j = 2 To 14
        If Cells(j, "a") Like Cells(i, "e") Then n = n + 1
        Cells(i, "f") = n
    Next
    n = 0
Next
End Sub

01-32、綜合運用

以上例子中,找出未盤點的編碼

代碼

第一章結束

 

本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Excel VBA 快速上手之寶典
Excel VBA 語法基礎
VBA筆記10:技巧與案例
刪除A列重復行
VBA 學習(90)
Excel VBA宏 鏈接服務器 上傳和下載數(shù)據(jù)
更多類似文章 >>
生活服務
熱點新聞
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服