Excel-VBA基礎語法

2022-01-13 BIT 寶冶工業技術

收錄於話題 #EXCEL-VBA 3個

一、VBA介紹

1、宏和VBA的關係

  vba是程式語言,宏是用vba代碼保存下來的程序。錄製的宏是vba裡最簡單的程序,正因為如此,錄製宏存在許多缺陷:如無法進行判斷和循環,不能顯示用戶窗體,不能進行人機互動……

  解決錄製宏的這些問題,需要掌握vbs編程的方法,自主的編寫vba程序。

2、VBA程序結構

代碼:vba程序由代碼組成。

過程:例如Sub過程、Function過程

模塊:保存過程的地方,一個模塊可以保存多個不同類型的過程

對象:用代碼操作或控制的東西即為對象,例如工作簿、工作表、單元格、圖片、圖表、透視表等

對象的屬性:每個對象都有屬性,屬性是對象包含的內容或特點,例如A1單元格的內容:A1.內容,代碼表達為Range("A1).Value

對象的方法:方法是指在對象上執行的某個動作,例如Range("A1").Select

關鍵字:關鍵字是vba中的保留字或符號,例如語句名稱、函數名稱、運算符等都是關鍵字

3、VBE介紹

  VBE即Visual Basic Editor即VBA的編程環境

  1)打開VBE編輯器

    Alt+F11(Alt+F8是查看宏)

    依次執行:(2003版本)工具——宏——Visual Basic編輯器,(2007以上版本)在「視圖」下的「宏」選項卡下

    右鍵單擊工作表標籤,執行「查看代碼」命令

  2)主窗口:包含「工程資源管理器」、「屬性窗口」、「菜單欄」、「工具欄」、「代碼窗口」、「立即窗口」

     

  3)菜單欄:包含VBE中各種組件的命令

  4)工具欄:可以在「視圖」——「工具欄」菜單裡顯示或隱藏

  5)工程資源管理器:在這裡可以看到所有打開的Excel工作簿和已加載的宏,一個Excel的工作簿就是一個工程,工程名稱為「VBA Project(工作簿名稱)」,這裡最多可以顯示工程裡的4類對象,即Excel對象(包括sheet對象和ThisWorkbook對象)、窗體對象、模塊對象和類模塊對象。

    

  6)屬性窗口:在這裡查看或設置對象的屬性

  7)代碼窗口:包含對象列表框、過程列表框、邊界標識條、視圖按鈕、代碼編輯區、過程分界線。

    

  8)立即窗口:一個重要用途是用來調試代碼,想顯示立即窗口,可以在視圖選項卡中選擇或者用快捷鍵「Ctrl+G」

4、牛刀小試:用vba生成工資條

Sub 生成工資條()
'
' 生成工資條 宏
'
' 快捷鍵: Ctrl+m
'
Application.ScreenUpdating = False
For i = 2 To 7
ActiveCell.Rows("1:1").EntireRow.Select
Selection.Copy
ActiveCell.Offset(2, 0).Rows("1:1").EntireRow.Select
Selection.Insert Shift:=xlDown
ActiveCell.Select
Next
End Sub

 

二、VBA數據類型

1、VBA中的數據類型

數據類型就是對同一組數據的統稱,如文本、日期、數值等。

VBA裡的數據類型有:字節型(Byte)、整數型(Integer)、長整數型(Long)、單精度浮點型(Single)、雙精度浮點型(Double)、貨幣型(Currency)、小數型(Decimal)、字符串型(String)、日期型(Date)、布爾型(Boolean)等,如表3-1

 類型聲明符:用特殊符號代替變量類型進行變量類型聲明,例如Dim str$   中$代表String類型。只有部分數據類型可以使用類型聲明符。

 

三、VBA變量、常量

1、變量命名要求

變量必須以字母或漢字開頭,不能包含空格、句號、感嘆號、@、&、$和#,最長不能超過255個字符(一個漢字計2個字符)

2、聲明變量

  示例:

  Dim str As String  聲明一個String類型(變長)的變量,名稱是str

  Dim str As String*10  聲明一個String類型(定長,最大存儲10個字符)的變量,名稱為str

  Dim str$  聲明一個String(變長)類型變量,$變量類型聲明符,代表String

  Dim x, y, z As String

  Dim str As String,nu As Integer  不同變量之間用逗號隔開

  Dim str  每個變量都要指定數據類型,如果不指定,默認為Variant類型

3、聲明常量

常量定義:Const 變量名稱 As 數據類型=數值

示例:

Const pi As Single=3.14 

 

4、變量的作用域

Public 變量名稱  As 數據類型  【公有變量】

Private 變量名稱  As 數據類型   【私有變量】

Static 變量名稱 As 數據類型  【靜態變量,整個代碼運行期間值不變】

 

單個變量:本地變量

單個模塊:模塊級變量,用Dim或Private

所有模塊:公共變量,用Public

 

5、強制聲明所有變量(未定義變量則提示,否則不提示)

Option Explicit  在模塊的第一句表示。

可以在VBE下的「工具」——「選項」——「編輯器」選項卡中進行設置,這裡設置後,每個模塊的第一句會自動寫下「Option Explicit」,無需手動輸入。

 

6、給變量賦值

  語句為:[Let]變量名稱 = 數據  這裡的Let可以省略,即:變量名稱=數據

  例如:

  Dim str As String

  Let str = 「一起來學習VBA」

 

  語句為:Set 變量名稱=對象  這裡Set千萬不能少。

  例如:

  Dim rng = Range    '聲明rng變量為Range類型

  Set rng = Worksheets("sheet1").Range("A1")  '給變量rng賦值

  rng.Value="歡迎來到ExcelHome論壇"    '將文本寫入變量指定的單元格

 

四、VBA數組

1、一維數組 

聲明:Public|Dim 數組名(a to b) As 數據類型

示例:

Dim 七6班(1 to 50) As String  '聲明一個String類型的數組,名稱為「七6班」,可以存儲50個元素。

等價於:

Public|Dim Arr(0 to 49) As String

Public|Dim Arr(49) As String   '數組索引默認是從0開始計數,如果在模塊的第一句寫「Option Base 1」,則數組的起始索引從1開始,而不是0.

 

 七6班(1)="張青"

 七6班(2)="鄧城"

……

 七6班(50)="馮吉"

 

2、多維數組:

Dim 醬油(1 to 3,1 to 20)  

等價於

Dim 醬油(2,19)

 

3、多維動態數組

  不確定數組中存儲多少個元素,即不能預知元素的大小,可以在首次定義數組時括號內為空,寫成:

  Dim 數組名稱() 

例子:

Sub dtsz()
Dim arr() As String '定義多維動態數組
Dim n As Long
'統計A列有多少非空單元格
n = Application.WorksheetFunction.CountA(Range("A:A"))
MsgBox n
'使用Dim語句聲明變量時,括號內的參數不能是變量,所以必須使用ReDim語句重新指定大小
ReDim arr(1 To n) As String '重新定義數組的大小
End Sub

 

4、其他常用的創建數組的方式

  1)使用Array函數創建數據 

Sub ArrayTest()
Dim arr As Variant '定義變量
'將1-10的自然數賦給數組
arr = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
MsgBox "arr數組的第2個元素為:" & arr(1)
End Sub

  2)使用split創建數組 

Sub ArrayTest()
Dim arr As Variant '定義變量
'無論是否在模塊中寫入Option Base 1,Split函數返回的數組的最小索引都是0
arr = Split("鄧成,林梅,張青,孔麗,馮吉維,孔佳", ",") '第一個參數包含分隔符或字符串變量,第二個參數是分隔符
MsgBox "arr數組的第2個元素為:" & arr(1)
End Sub

  3)通過Range對象直接創建數組 

Sub ArrayTest()
Dim arr As Variant '定義變量
arr = Range("A1:C3").Value '將A1:C3單元格內容存儲到數組arr裡
Range("E1:G3").Value = arr '將數組arr的數據寫入大E1:G3
'將數組的值寫入到單元格區域時,單元格區域的大小必須與數組相同
End Sub

 

5、數組相關函數:UBound和LBound函數

UBound(arr) 獲取數組arr的最大索引號

LBound(arr)  獲取數組arr的最小索引號

數組的元素個數可以表示為:UBound(arr)-LBound(arr)+1

Sub arrcount()
Dim arr(10 To 50)
'Char(13)表示回車,_表示代碼換行連接符
MsgBox "數組的最大索引號是:" & UBound(arr) & Chr(13) _
& "數組最小的索引號是:" & LBound(arr) & Chr(13) _
& "數組的元素個數是:" & UBound(arr) - LBound(arr) + 1
End Sub

Sub arrcount()
Dim arr(1 To 10, 1 To 100)
'Char(13)表示回車,_表示代碼換行連接符
MsgBox "第一維的最大索引號是:" & UBound(arr, 1) & Chr(13) _
& "第二維的最小索引號是:" & LBound(arr, 2)
End Sub

 

6、數組相關函數:Join函數

將一個以為數組裡的元素使用指定的分隔符連接成一個新的字符串

Sub joinTest()
Dim arr As Variant, txt As String
arr = Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
'分割符@可以省略,如果省略,默認使用空格作為分隔符
txt = Join(arr, "@")
MsgBox txt
End Sub

將數組寫入單元格區域

Sub ArrToRng1()
Dim arr As Variant
arr = Array(1, 2, 3, 4, 5, 6, 7, 8, 9)
'將一維數組寫入單元格區域,單元格區域必須在同一行。如果要寫入垂直的一列單元格區域,必須先使用工作表的Transpose函數進行轉換
Range("A1:A9").Value = Application.WorksheetFunction.Transpose(arr)
End Sub

 

五、VBA運算符

1、算術運算符

 用於算術運算,返回值類型為數值型。

2、比較運算符

 用於比較運算

3、連接運算符

 連接運算符用來連接兩個文本字符串,有+和&兩種

示例:

a="歡迎來到"

b="ExcelHome論壇!"

?a+b       '問號?告訴VBA在立即窗口中顯示問號後面命令的結果,可以用Print關鍵字代替問號。

歡迎來到ExcelHome論壇!

?a & b

歡迎來到ExcelHome論壇!

?4+5 '符號+兩邊都是數值,執行算術運算

9

?"4"+5 '其中5是數值,執行算術運算

9

?"4"+"5" '兩個都是文本,執行連接運算

45 

4、邏輯運算符

邏輯運算符用於判斷邏輯運算式的真假,參與邏輯運算的數據為邏輯型數據,返回結果為Boolean型,只能為True或False。 

5、VBA中的通配符 

  

6、運算符優先級

 在VBA中要優先處理蒜素運算符,接著處理連接運算符,然後處理比較運算符,最後再處理邏輯運算符,可以用括號來改變運算順序。

 

7、換行符 

VBA中字符換行顯示需要使用換行符來完成。下面是常用的換行符
'chr(10) 可以生成換行符
'chr(13) 可以生成回車符
'vbcrlf 換行符和回車符
'vbCr 等同於chr(10)
'vblf 等同於chr(13)
'例:
Sub test3()
MsgBox "我愛" & Chr(10) & "Excel"
' MsgBox "我愛你" & Chr(13) & "Excel"
' MsgBox "今天" & vbCrLf & "我是大王"

End Sub

六、VBA內置函數

使用VBA中內置函數與在工作表中使用工作表函數類似。

例如,我們想知道當前系統時間

Sub NowTime()
MsgBox "現在的時間是:" & Time()
End Sub

 

VBA中的內置函數有哪些?查看VBA內置函數的方法:

1、在VBE中「幫助(H)」——「Microsoft Visual Basic 幫助(H) F1」——「Visual Basic 語言參考」——「函數」 或者在VBE下快捷鍵「F1」

地址:https://docs.microsoft.com/zh-cn/office/vba/language/reference/functions-visual-basic-for-applications

2、在VBE代碼窗口中首先鍵入「VBA.」系統會自動提示「函數列表」,如圖

 

七、VBA控制結構

 1、If…Then語句 

Sub SayHello1()
If Time < 0.5 Then MsgBox "早上好!"
If Time >= 0.5 Then MsgBox "下午好!"
End Sub

Sub SayHello2()
If Time < 0.5 Then
MsgBox "早上好!"
Else
MsgBox "下午好!"
End If
End Sub

Sub SayHello3()
If Time < 0.5 Then
MsgBox "早上好!"
ElseIf Time > 0.75 Then
MsgBox "晚上好!"
Else
MsgBox "下午好!"
End If
End Sub

2、Select Case語句 

Sub SayHello1()
Select Case Time
Case Is < 0.5
MsgBox "早上好!"
Case Is > 0.75
MsgBox "晚上!"
End Select
End Sub

Sub SayHello2()
Select Case Time
Case Is < 0.5
MsgBox "早上好!"
Case Is > 0.75
MsgBox "晚上!"
Case Else
MsgBox "下午好!"
End Select
End Sub

 

Sub xingji()
Dim xj As String
Select Case Cells(2, "H")
Case Is < 85
xj = "不評定"
Case Is < 100
xj = "一星級"
Case Is < 115
xj = "二星級"
Case Is < 130
xj = "三星級"
Case Is < 150
xj = "四星級"
Case Else
xj = "五星級"
End Select
Cells(2, "I") = xj
End Sub

3、For…Next語句

 語法結構:

For <循環變量>=<初值>To<終值> [Step 步長值]
  <循環體>
[Exit For] '可以在循環體中任意處加一句或多句Exit For,當遇到這個語句,退出For循環,執行Next後語句
  <循環體>
Next [循環變量]

 

Sub xingji()
Dim xj As String, i As Integer
For i = 2 To 19 Step 1
Select Case Cells(i, "H")
Case Is < 85
xj = "不評定"
Case Is < 100
xj = "一星級"
Case Is < 115
xj = "二星級"
Case Is < 130
xj = "三星級"
Case Is < 150
xj = "四星級"
Case Else
xj = "五星級"
End Select
Cells(i, "I") = xj
Next i
End Sub

4、Do While語句

Do [While 邏輯表達式]
<循環體>
[Exit Do]
[循環體]
Loop

對應示例:

Sub xingji()
Dim xj As String, i As Integer
i = 2
Do While Cells(i, "H") <> ""
Select Case Cells(i, "H")
Case Is < 85
xj = "不評定"
Case Is < 100
xj = "一星級"
Case Is < 115
xj = "二星級"
Case Is < 130
xj = "三星級"
Case Is < 150
xj = "四星級"
Case Else
xj = "五星級"
End Select
Cells(i, "I") = xj
i = i + 1
Loop
End Sub

Do
<循環體>
[Exit Do]
[循環體]
Loop [While 邏輯表達式]

對應示例:

Sub xingji()
Dim xj As String, i As Integer
i = 2
Do
Select Case Cells(i, "H")
Case Is < 85
xj = "不評定"
Case Is < 100
xj = "一星級"
Case Is < 115
xj = "二星級"
Case Is < 130
xj = "三星級"
Case Is < 150
xj = "四星級"
Case Else
xj = "五星級"
End Select
Cells(i, "I") = xj
i = i + 1
Loop While Cells(i, "H") <> ""
End Sub

 

5、Do Until語句

  do Until 後的邏輯表達式為False則執行循環體,否則退出循環,跟Do While相反。

Do [Until 邏輯表達式]
<循環體>
[Exit Do]
[循環體]
Loop

 對應示例: 

Sub xingji()
Dim xj As String, i As Integer
i = 2
Do Until Cells(i, "H") = ""
Select Case Cells(i, "H")
Case Is < 85
xj = "不評定"
Case Is < 100
xj = "一星級"
Case Is < 115
xj = "二星級"
Case Is < 130
xj = "三星級"
Case Is < 150
xj = "四星級"
Case Else
xj = "五星級"
End Select
Cells(i, "I") = xj
i = i + 1
Loop
End Sub

Do
<循環體>
[Exit Do]
[循環體]
Loop [Until 邏輯表達式]

 對應示例:

Sub xingji()
Dim xj As String, i As Integer
i = 2
Do
Select Case Cells(i, "H")
Case Is < 85
xj = "不評定"
Case Is < 100
xj = "一星級"
Case Is < 115
xj = "二星級"
Case Is < 130
xj = "三星級"
Case Is < 150
xj = "四星級"
Case Else
xj = "五星級"
End Select
Cells(i, "I") = xj
i = i + 1
Loop Until Cells(i, "H") = ""
End Sub

6、For Each…Next語句

當前活動工作簿中有許多工作表,但並不知道數量。如果要把所有工作表的名稱按次序寫入活動工作表的A列,For Each…Next是更適合的循環。

For Each 元素變量 In 集合名稱或數組名稱
<語句塊1>
[Exit For]
[語句塊2]
Next [元素變量]

示例1:

Sub shtName()
Dim sht As Worksheet, i As Integer
i = 1
For Each sht In Worksheets
Cells(i, "A") = sht.Name
i = i + 1
Next sht
End Sub

示例2:

Sub shtName()
Dim c As Range, i As Integer
i = 1
For Each c In Range("A1:A10")
c.Value = i
i = i + 1
Next c
End Sub

7、GoTo語句

 「去到指定地點」,用來讓程序轉到另外一條語句去執行。

Sub he()
Dim mysum As Long, i As String
i = 1
x: mysum = mysum + i
i = i + 1
If i <= 100 Then GoTo x
MsgBox "1到100的自然數和是:" & mysun

End Sub

8、With語句

 當需要對相同的對象進行多次操作時,會編寫一些重複代碼

Sub FontSet()
With Worksheets("sheet1").Range("A1").Font
.Name = "仿宋"
.Size = 12
.Bold = True
.ColorIndex = 3
End With '這裡的With語句結束標誌,不可缺少
End Sub 

八、過程Sub

1、Sub定義語句

聲明sub過程的規範語句

'所有[]內容都是可選的
'Exit Sub:可選語句,執行它將中斷執行並退出過程
'如果選用Static,運行程序的過程中將保存該過程裡聲明的本地變量
'Private和Public用於聲明過程的作用域名,如果省略,過程默認為公共過程
[Private|Public][Static] Sub 過程名([參數列表])
[語句塊]
[Exit Sub]
[語句塊]
End Sub 

2、Sub間調用

被調用過程定義:

Sub SayHello()
If Time < 0.5 Then
MsgBox "早上好!"
ElseIf Time > 0.75 Then
MsgBox "晚上好!"
Else
MsgBox "下午好!"
End If
End Sub

方法一:過程名[參數1,參數2…]

Sub RunSub()
SayHello
End Sub

帶參數調用

Sub PrintInfo(info)
MsgBox info
End Sub

Sub RunPara()
PrintInfo ("Hello World")
End Sub

方法二:Call 過程名[(參數1,參數2…)]

Sub RunSub()
Call SayHello
End Sub

方法三:利用Application對象的Run方法,Application.Run 表示過程名的字符串(或字符串變量)[,參數1,參數2…]

Sub RunSub()
Application.Run "SayHello"
End Sub

3、過程的作用域

 公共過程:可以跨模塊調用,用Public 或省略不寫。

Public Sub gggc()
MsgBox "我是公共過程"
End Sub

 私有過程:只能在模塊內調用,用Private

Private Sub gggc()
MsgBox "我是私有過程"
End Sub

 

九、自定義Function

 Function過程也稱為函數過程,編寫一個Function過程,就是編寫一個函數。

1、定義語法格式 

'最後必須將結果賦值給函數名稱
[Private|Public][Static] Function 函數名([參數列表])[As 數據類型]
[語句塊]
[函數名=過程結果]
[Exit Function]
[語句塊]
[函數名=過程結果]
End Function

2、定義函數

定義函數:生成1-10之間的隨機整數

Public Function Fun()
Fun = Int(Rnd() * 10) + 1
End Function

3、使用函數

Sub msg()
MsgBox Fun()
End Sub

4、函數實例

 RGB函數中,R代表紅色,G代表綠色,B代表藍色

 RGB(255,255,0)  表示黃色

'最後必須將結果賦值給函數名稱
Function CountColor()
If Range("A1").Interior.Color = RGB(255, 255, 0) Then
CountColor = 1 '如果是黃色,函數值等於1
Else
CountColor = 0
End If
End Function

'最後必須將結果賦值給函數名稱
Function CountColor()
Dim rng As Range
For Each rng In Range("A1:A10")
If rng.Interior.Color = RGB(255, 255, 0) Then
CountColor = CountColor + 1
End If
Next rng
End Function

'最後必須將結果賦值給函數名稱
Function CountColor(arr As Range)
Dim rng As Range
For Each rng In arr
If rng.Interior.Color = RGB(255, 255, 0) Then
CountColor = CountColor + 1
End If
Next rng
End Function

'最後必須將結果賦值給函數名稱
Function CountColor(arr As Range, c As Range)
Dim rng As Range
For Each rng In arr
If rng.Interior.Color = c.Interior.Color Then
CountColor = CountColor + 1
End If
Next rng
End Function

工作表重新計算(按F9重新計算,或重啟工作簿)之後,自定義函數並不會重新計算。

如果將自定義函數設置為易失性函數,無論何時重新計算工作表,函數都會重新計算。

使用命令:Application.Volatile True

'最後必須將結果賦值給函數名稱
Function CountColor(arr As Range, c As Range)
Application.Volatile True
Dim rng As Range
For Each rng In arr
If rng.Interior.Color = c.Interior.Color Then
CountColor = CountColor + 1
End If
Next rng
End Function 

十、代碼美化

合理縮進:tab

取消縮進:Shift+Tab

更改長行代碼為短行代碼,在子句後面輸入一個空格和一個下劃線(_),然後換行,這就把一行代碼分成兩行。

Sub test()
Application.Workbooks("Book1").Worksheets("sheet1") _
.Range("A1:D100").Font.Bold = True
End Sub

把多行合併為一行,在第一行代碼後加上英文冒號(:),可以接著寫第二行代碼

Sub test()
Dim a%, b%, c%: a = 1: b = 2: c = 3
End Sub

注釋:用英文單引號(')表示後面的語句為注釋

注釋Rem:用Rem注釋只能注釋一整行,注釋行不能有代碼邏輯

Sub test()
'=================注釋
Application.Workbooks("Book1").Worksheets("sheet1") _
.Range("A1:D100").Font.Bold = True
Rem ==============注釋
End Sub

批量注釋:在VBE窗口中,「視圖」——「工具」——「編輯」——「設置注釋塊」  【或解除注釋塊】

 

十一、VBE其他設置

自動列出成員設置:VBE下「工具」——「選項」——「編輯器」選項卡下——「自動列出成員」

相關焦點

  • excel VBA是什麼?VBA編程入門教程
    本篇將介紹excel vba是什麼?vba編程入門教程,有興趣的朋友可以了解一下!一、excel vba是什麼?VBA的英文全稱是Visual Basic for Applications,是一門標準的宏語言。VBA語言不能單獨運行,只能被office軟體(如:Word、Excel等)所調用。
  • 「Python替代Excel Vba」系列(終):vba中調用Python
    最後,定義一個方法,讓vba調用。如下圖:這個方法的上方套上一個 xlwings 的裝飾器 @xw.func。表示這個方法需要註冊到 Vba 模塊中。而上述命令行只是把這個 xlam 文件放入你的 excel 加載項目錄中而已。然後,在你的任意目錄中打開命令行。執行以下語句,即會生成一個 py 文件和一個 帶宏的 excel 文件。
  • 「Python替代Excel Vba」系列(二):pandas分組統計與操作Excel
    帶你用pandas玩轉各種數據處理前言在本系列的上一章已經介紹了如何讀寫 excel 數據,並快速進行匯總處理。但有些小夥伴看完之後有些疑惑:那只是簡單讀寫數據而已,有時候需要設置 excel 的格式。
  • vba第十八課
    vba第十八課調用工作表函數在vba中我經常會對工作表的數據進行一些運算,雖然通過代碼進行循環或判斷也可以完成,但是通vba調用函數可以更簡單更直接進行運算提高代碼的運行效率,比如countif、sumif等需要進行判斷統計和求和的運算。
  • Excel VBA入門教程1.1 數據和數據類型
    1 語法說明都知道學會了英語語法,再加上大量的詞彙基礎,就算基本掌握了英語了。
  • Excel VBA從新手到高手系列課程
    五、 教學目錄:第一章 新手篇-走進excel vba的世界      1.1 什麼是VBA      1.2 EXCEL中的宏      1.3 認識VISUAL BASIC編輯器        1.4 vba程序結構      1.5 數據類型         1.6
  • 巧用python win32com模塊操作excel文件
    如果我們平日裡對VBA語法很熟悉,則可以通過win32com.client來操縱excel文件,語法非常類似。  之所以不直接使用VBA,是因為VBA擅長跟excel打交道,不擅長跟外部應用打交道。小爬最近就遇到這樣一個自動化場景:先利用python爬蟲的方法,獲取到伺服器端的多個excel文件,然後對這些excel文件進行跨表操作,單純的VBA實現起來比較繁瑣,用python和VBA各實現一部分不利於腳本的封裝,割裂感較強。
  • 【Excel分享】if函數的基本用法
    就可以天天收到Excel知識分享 Excel中的if函數的基本用法       在excelexcel中的if函數是判斷函數,表達的意思是當滿足某條件時,返回一個值,否則返回另一個值語法:if(logical_test,[value_if_true],[value_if_false]) 第1參數:logical_test表示要判斷的條件 第2參數:value_if_true表示當滿足判斷的條件時返回的值 第3參數:value_if_false表示當不滿足判斷的條件時返回的值
  • EXCEL學習的順序是什麼?
    一、首先要了解excel的各大功能,基礎的有複製,粘貼,數據有效性,條件格式;然後就是函數,函數要學sumif,sumifs,countif,countifs,vlookup,再深點就學offset,match,index等等。
  • 新春福利8:Excel與VBA學習網站集粹
    excelcharts.comhttps://excelcharts.com/正如網站名稱所指的,有大量的圖表示例和技巧。 Excel Universityhttps://www.excel-university.com/網站主Jeff Lenning CPA CITP面向註冊會計師和會計專業人員,培訓他們如何使用Excel來提高工作效率,網站中有很多Excel基礎知識和深入應用技巧。
  • Excel vba 利用定義名稱實現用戶登錄功能
    文/江覓易見在vba 中實現用戶登錄,並對登錄用戶進行身份識別,然後對用戶進行分組管理,此類功能值得進一步思考。這裡介紹一種方法,利用Excel中的名稱管理來進行身份識別,起到用戶登錄次數以及增減用戶的功能。
  • 用Excel VBA將生產工藝流程圖形化
    利用excel函數功能將底層的名稱判斷出來,便於後期流程圖的精確繪製。 通過這樣的一個例子,可以發現通過網絡excel平臺,加上專業的管理諮詢思想,和一些vba編程技術,可以解決現在傳統軟體所不能或者難以實現的功能,為管理的實踐拓展了新的應用工具。責編:趙龍
  • WPS教程:excel新手入門VBA功能使用介紹
    Excel教學:今天和大家分享一下excel中vba的使用方法入門,相信很多使用該軟體的朋友們對此都很感興趣,下面就和大家來分享一下,希望可以幫助到大家。
  • VBA學習筆記 1-1
    ''  ActiveCell.Font.Bold = True    ActiveCell.FormulaR1C1 = "穆澤"    ActiveCell.Offset(1, 0).Range("A1").Select  End Sub測試顯示:當前滑鼠位置輸入名字excel
  • VBA代碼大全030:用vba強制關閉word應用程式
    我們有時候需要從word中提取數據到excel中。 這時候一般的套路都是在excel vba中創建word應用程式實例,然後一番操作以後關閉word應用程式。 關於在vba中使用dos命令可以看往期文章用VBA執行DOS命令
  • Excel VBA解讀(121):Sub過程詳解——枯燥的語法
    學習Excel技術,關注微信公眾號:excelperfect
  • VBA基礎概念-對象、屬性、方法
    '例如range("A1:A4").ClearContents ,清除A1:A4的內容'例如常用的copy複製、select選中,save保存,close關閉等方法'常用的對象'aplication對象:最外層的vba
  • vba如何快速解決excel小問題
    我給出的解決方式有兩種:一是分列+轉置+去除重複值;二是vba。我剛好有點時間所以就搜索了一下這個問題搜索有關 Excel 和 VBA 相關的問題,我覺得 Excelhome 網站還是比較權威的,相比直接從百度、必應等搜尋引擎直接搜索答案要更為高效、準確,況且  Excelhome  還有那麼多活躍的大神,我的vba
  • excel編程系列基礎:VBA常用的操作對象RANDE
    前段時間和大家提到了讓excel自殺的VBA代碼,引起了不少小夥伴的討論,都說想看部落窩分享更多關於excel中VBA的知識,別催別催,這不就來了嗎。學習更多技巧,請收藏部落窩教育excel圖文教程。在EXCEL中也有類似的一個比例,那就是「日常使用的知識:excel不會應用的知識」,但是這個比例大概有多少就不好說了,因為每個人掌握EXCEL的程度是不一樣的,不敢說「九牛一毛」,但是大部分的同學還只是用到「皮毛而已」。當你有一天真正的運用到了VBA,才會對EXCEL的運行原理有更加透徹的理解和使用。
  • Excel VBA解讀(128):Function過程詳解——枯燥的語法
    學習Excel技術,關注微信公眾號:excelperfect