VBA突擊01-012
(工作需要,臨時啃vba)
01
輸入資料
Sub 輸入100()
//輸入100 Macro
// 巨集由 Lenovo User 錄製,時間: 2011-4-22
Range("A1").Select
ActiveCell.FormulaR1C1 = "100"
Range("B4").Select
End Sub
刪除資料
Sub 刪除A1的內容()
’
’ 刪除A1的內容 Macro
’ 巨集由 Lenovo User 錄製,時間: 2011-4-22
’
’
Range(“A1”).Select
Selection.ClearContents
End Sub
02
1語句:
'VBA中的程式碼的基本結構與組成部分
'VBA語句
'一、巨集程式語句(填充)
'執行後可以完成一個功能
Sub test() '開始語句
Range("a1") = 100
End Sub '結束語句
'二、函式程式語句(呼叫函式)
'執行後可以返回一個值
Function shcount()
shcount = Sheets.Count
End Function
'三、在程式中應用的語句(呼叫test這個巨集)
Sub test2()
Call test
End Sub
Sub test3()(迴圈語句,在1-100中填充1-100)
For x = 1 To 100 'for next 迴圈語句
Cells(x, 1) = x
Next x
End Sub
VBA物件
'VBA中的物件其實就是我們操作的具有方法、屬性的excel中支援的物件
'Excel中的幾個常用物件表示方法:
’1、工作簿
' Workbooks 代表工作簿集合,所有的工作簿,Workbooks(N),表示已開啟的第N個工作簿
' Workbooks ("工作簿名稱")
' ActiveWorkbook 正在操作的工作簿
' ThisWorkBook '程式碼所在的工作簿
’2、工作表
'Sheets("工作表名稱")
'Sheet1 表示第一個插入的工作表,Sheet2表示第二個插入的工作表....
'Sheets(n) 表示按排列順序,第n個工作表
'ActiveSheet 表示活動工作表,游標所在工作表
'worksheet 也表示工作表,但不包括圖表工作表、巨集工作表等。
’3、單元格
'cells 所有單元格
'Range ("a1:a10,c2")
'Cells(行數,列數)
'Activecell 正在選中或編輯的單元格
'Selection 正被選中或選取的單元格或單元格區域
3.VBA屬性
'VBA屬性就是VBA物件所具有的特點
'表示某個物件的屬性的方法是:
’物件.屬性=屬性值
(賦值)
Sub ttt()
Range("a1").Value = 100
End Sub
(改名)
Sub ttt1()
Sheets(1).Name = "工作表改名了"
End Sub
(工作表的單元格的值)
Sub ttt2()
Sheets("Sheet2").Range("a1").Value = "abcd"
End Sub
(把單元格改成紅色的背景色)
’Range(“A2”).Interior.ColorIndex = 3 (修改背景色)
‘Range(“A2”).Font.ColorIndex = 3 (修改字型顏色)
Sub ttt3()
Range("A2").Interior.ColorIndex = 3
End Sub
4.VBA方法
'VBA方法是作用於VBA物件上的動作
'表示用某個方法作用於VBA的物件上,可以用下面的格式:
物件.方法 引數名稱 := 引數值
(把a1的內容複製到a2中)
Sub ttt4()
Range("A1").Copy Range("A2")
End Sub
()
Sub ttt5()
Sheet1.Move before:=Sheets("Sheet3")
End Sub
(刪除工作表)
Sub ttt4()
sheets("sheet2").Delete
End Sub
03判斷語句
1.if判斷語句
If 條件 Then
語句1
Else
語句2
End If
單條件判斷
Sub 判斷1()
If Range("a1").Value > 0 Then
Range("b1") = "正數"
Else
Range("b1") = "負數或0"
End If
End Sub
多條件判斷
If 條件1 Then
語句1
Else If 條件2 Then
語句2
Else If 條件3 Then
語句3
End If
Sub 判斷2() '
If Range("a1").Value > 0 Then
Range("b1") = "正數"
ElseIf Range("a1") = 0 Then
Range("b1") = "等於0"
ElseIf Range("B1") <= 0 Then
Range("b1") = "負數"
End If
End Sub
If 條件1 And 條件2 Then
語句
End If
(IF語句具有多條件判斷優勢,if使用較多)
Sub 多條件判斷2()
If Range("a1") <> "" And Range("a2") <> "" Then
Range("a3") = Range("a1") * Range("a2")
End If
End Sub
2.select-case
先找到判斷物件;再根據情況進行操作。
(單條件判斷)
Select Case 判斷物件
Case 條件1
語句1
Case Else
語句2
End Select
Sub 判斷1()
Select Case Range("a1").Value
Case Is > 0
Range("b1") = "正數"
Case Else
Range("b1") = "負數或0"
End Select
End Sub
('多條件判斷)
Select Case 物件
Case 條件1
語句1
Case 條件2
語句2
Case Else
語句3
End Select
Sub 判斷2()
Select Case Range("a1").Value
Case Is > 0
Range("b1") = "正數"
Case Is = 0
Range("b1") = "0"
Case Else
Range("b1") = "負數"
End Select
End Sub
(直接與字母比較)
Sub 判斷3()
If Range("a3") < "G" Then
MsgBox "A-G"
End If
End Sub
3.IFF函式
只能作為簡單的判斷在簡化語句時使用;
Sub 判斷4()
Range("a3") = IIf(Range("a1") <= 0, "負數或零", "負數")
End Sub
4.區間判斷
使用IF:
需求:根據a2判斷b2的取值
Sub if區間判斷()
If Range("a2") <= 1000 Then
Range("b2") = 0.01
ElseIf Range("a2") <= 3000 Then
Range("b2") = 0.03
ElseIf Range("a2") > 3000 Then
Range("b2") = 0.05
End If
End Sub
使用select-case:
注:可以使用to來創造區間
Sub select區間判斷()
Select Case Range("a2").Value
Case 0 To 1000
Range("b2") = 0.01
Case 1001 To 3000
Range("b2") = 0.03
Case Is > 3000
Range("b2") = 0.05
End Select
End Sub
04.迴圈語句
(複雜做法)
Sub t1()
Range("d2") = Range("b2") * Range("c2")
Range("d3") = Range("b3") * Range("c3")
Range("d4") = Range("b4") * Range("c4")
Range("d5") = Range("b5") * Range("c5")
Range("d6") = Range("b6") * Range("c6")
End Sub
(1.構造迴圈,有數字規律時使用for-to-step)
Sub t2()
Dim x As Integer '宣告一個變數
For x = 10000 To 2 Step -3 //For x = 2 To 6 Step 1(從2到6,按1遞增)
Range("d" & x) = Range("b" & x) * Range("c" & x)
Next x
End Sub
(2.構造迴圈,有位置規律時使用for-each-in-range)
Sub t3()
Dim rg As Range //宣告一個單元格物件
For Each rg In Range("d2:d18") //從約定範圍內逐個取出單元格
rg = rg.Offset(0, -1) * rg.Offset(0, -2) //該單元格數值等於右邊一個單元格數值乘以右邊第二個單元格的數值
Next rg
End Sub
(在一定區域的空白單元格內填充0)
(注:如果找不到數字規律,看看是否可以使用for-each-in-range來達到目的)
Sub case1()
Dim rg As Range //宣告單元格物件
For Each rg In Range("a1:b7,d5:e9") //定位兩個修改範圍(類似於選定兩個班級)
If rg = "" Then
rg = 0 //空白區域填充0
End If
Next rg //迴圈
End Sub
3.do迴圈
注意:很容易造成死迴圈
Sub t4()
Dim x As Integer //宣告變數
x = 1 //初始值,作為計數器
Do //開始語句
x = x + 1 //迴圈結構
Cells(x, 4) = Cells(x, 2) * Cells(x, 3) //操作語句:同一行的第四列等於第二列乘以第三列
Loop Until x = 18 //迴圈語句+結束語句(設定不好容易造成死迴圈)
End Sub
(do-while:終止條件放到前面)
Sub t5()
x = 1 //計數器
Do While x < 18 //迴圈結束條件
x = x + 1
Cells(x, 4) = Cells(x, 2) * Cells(x, 3)
Loop //語句
End Sub
(用do語句尋找資料中存在的斷點)
Sub s2()
Dim x As Integer
Do
x = x + 1
If Cells(x + 1, 1) <> Cells(x, 1) + 1 Then
Cells(x, 2) = "斷點" //找到斷點,強制退出迴圈
Exit Do
End If
Loop Until x = 14 //如果一直找不到斷點,在第14行結束迴圈
End Sub
05.變數
’變數
一、什麼是變數?
所謂變數,就是可變的量。就好象在記憶體中臨時存放的一個小盒子,這個小盒子放的什麼物體不固定。
Sub t1()
Dim X As Integer //x就是一個整數型變數
For X = 1 To 10
Cells(X, 1) = X
Next X
End Sub
二、小盒子裡可以放什麼?
1 放數字:如t1
2 放文字
Sub t2()
Dim st As String
Dim X As Integer
For X = 1 To 10
st = st & "Excel精英培訓"
Next X
End Sub
3 放物件
Sub t3()
Dim rg As Range
Set rg = Range("a1") //把a1單元格這個物件,放進rg這個物件變數中,此後,rg就代表了單元格a1(注:給物件變數賦值,一定要使用set關鍵詞)
rg = 100
End Sub
4 放陣列
Sub t4()
Dim arr(1 To 10) As Integer, X As Integer //宣告變數 dim-as
For X = 1 To 10
arr(X) = X
Next X
End Sub
三、變數的型別和宣告
幫助-語言參考-資料型別
1 變數的型別
詳見幫助檔案
2 為什麼要宣告變數
物盡其用,人盡其才。
3 宣告變數
dim public
四、變數的存活週期
1 過程級變數:過程結束,變數值釋放
如t1
2 模組級變數:在模組頂上宣告的變數
變數的值只在本模組中保持,工作簿關閉時隨時釋放
例:
Sub t6()
m = 1
End Sub
Sub t5()
MsgBox m
m = 7
End Sub
3。 全域性級變數:
在所有的模組中都可以呼叫,值會儲存到EXCEL關閉時才會被釋放。
public 變數名稱 as 型別
Sub t7()
MsgBox qq
End Sub
五 變數的釋放
一般情況下,過程級變數在過程執行結束後就會自動從記憶體中釋放,而只有一些從外部借用的物件變數才需要使用set 變數=nothing進行釋放。
06公式與函式
一、在單元格中輸入公式
1、用VBA在單元格中輸入普通公式
例1:
Sub t1()
Range("d2") = "=b2*c2"
End Sub
修改例1:
Sub t2()
Dim x As Integer
For x = 2 To 6
Cells(x, 4) = "=b" & x & "*c" & x //與上面的公式相比,只需要把行號x的位置獨立出來(變數和字串連線一定要使用&符號)
Next x
End Sub
'2、用VBA在單元格輸入帶引號的公式(一般字串需要加雙引號)
Sub t3()
Range("c16") = "=SUMIF(A2:A6,""b"",B2:B6)" //遇到單引號就把單引號加倍
End Sub
3、用VBA在單元格中輸入陣列公式
Sub t4()
Range("c9").FormulaArray = "=SUM(B2:B6*C2:C6)" //使用陣列公式,計算:b2*c2+b3*c3+b4*c4+b5*c5+b6*c6
End Sub
’二、利用單元格公式返回值(單元格公式)
Sub t5()
Range("d16") = Evaluate("=SUMIF(A2:A6,""b"",B2:B6)") //使用公式把表示式返回成數值
Range("d9") = Evaluate("=SUM(B2:B6*C2:C6)")
End Sub
’三、借用工作表函式(工作表函式)
Sub t6()
Range("d8") = Application.WorksheeFunction.CountIf(Range("A1:A10"), "B") //呼叫sum函式
End Sub
’四、利用VBA函式(VBA函式)
Sub t7()
Range("C20") = VBA.InStr(Range("a20"), "E")//查詢字串的位置
End Sub
'五、編寫自定義函式
Function wn()
wn = Application.Caller.Parent.Name
End Function
VBE編輯器
’一、VBE的視窗
’1、工程視窗
'A 顯示工作簿工作表物件
'B 窗體
'C 模組
'D 類模組
'range(“a1”)=10
'對應工程視窗的物件和模板,顯示其所具體的一些特徵。
’3、程式碼視窗
'A 註釋文字的設定
'B 程式碼縮排的設定
'C 程式碼強制轉行的設定(在想要轉行的地方,先輸入空格,再輸入下劃線,回車)
'D 程式碼執行和除錯
'逐句執行(除錯-逐語句/F8)
'設定斷點(點選左邊邊欄,設定斷點)
'E 物件列表框和過程列表框
’4、立即視窗 (各種視窗在檢視中尋找)
'立即視窗可以把執行過程中的值立即顯示出來,主要用於程式的除錯
(Debug.Print方法,把結果顯示到立即視窗中)
Sub d()
Dim x As Integer, st As String
For x = 1 To 10
st = st & Cells(x, 1)
Debug.Print "第" & x & "次執行結果:" & st //把每一步結果顯示到立即視窗中,方便在除錯程式時檢視
Next x
End Sub
’5、本地視窗
在本地視窗中可以顯示執行中斷時物件資訊、變數值、陣列資訊等。
Sub d1()
Dim x As Integer, k As Integer
For x = 1 To 10
k = k + Cells(x, 1)
Next x
End Sub
08VBA分支與AND語句
一、END語句
作用:強制退出所有正在執行的程式。
二、Exit語句
'退出指定的語句
'1、Exit Sub
Sub e1()
Dim x As Integer
For x = 1 To 100
Cells(1, 1) = x
If x = 5 Then
Exit Sub //退出當前程式,不執行後面語句
End If
Next x
Range("b1") = 100
End Sub
'2、Exit function
Function ff()
Dim x As Integer
For x = 1 To 100
If x = 5 Then
Exit Function //退出整個function
End If
Next x
ff = 100
End Function
3、Exit for
Sub e2()
Dim x As Integer
For x = 1 To 100
Cells(1, 1) = x
If x = 5 Then
Exit For //退出整個for迴圈
End If
Range("b1") = 100
End Sub
Next x
'4、Exit do
Sub e3()
Dim x As Integer
Do
x = x + 1
Cells(1, 1) = x
If x = 5 Then
Exit Do //退出do迴圈
End If
Loop Until x = 100
Range("b1") = 100
End Sub
二.分支語句(按照需要跳轉到指定位置)
1.Goto語句:無條件跳轉到指定的地方
Sub t1()
Dim x As Integer
Dim sr
100: //設定行號
sr = Application.InputBox("請輸入數字", "輸入提示") //讀取使用者輸入
If Len(sr) = 0 Or Len(sr) = 5 Then GoTo 100 //如果沒有輸入或者點選取消(false),則啟動跳轉設定
End Sub
2.gosub-return ,跳過去,再跳回來
Sub t2()
Dim x As Integer
For x = 1 To 10
If Cells(x, 1) Mod 2 = 0 Then GoSub 100
Next x
Exit Sub //當x執行完1-10時,不需要再執行100後面的語句,直接退出程式。
100:
Cells(x, 1) = "偶數"
Return '跳到gosub 100 這一句
End Sub
on error resume next '遇到錯誤,跳過繼續執行下一句
Sub t3()
On Error Resume Next //遇到錯誤-忽略-繼續執行
Dim x As Integer
For x = 1 To 10
Cells(x, 3) = Cells(x, 2) * Cells(x, 1)
Next x
End Sub
on error goto '出錯時跳到指定的行數
Sub t4()
On Error GoTo 100 //遇到錯誤進行指定輸出
Dim x As Integer
For x = 1 To 10
Cells(x, 3) = Cells(x, 2) * Cells(x, 1)
Next x
Exit Sub //一定要加這句,否則正常執行狀態下也要出現錯誤提示
100:
MsgBox "在第" & x & "行出錯了"
End Sub
on error goto 0 '取消錯誤跳轉
Sub t5()
On Error Resume Next
Dim x As Integer
For x = 1 To 10
If x > 5 Then On Error GoTo 0 //當到達某一範圍,錯誤提示語句將不再發揮作用
Cells(x, 3) = Cells(x, 2) * Cells(x, 1)
Next x
Exit Sub
End Sub
09excel檔案操作
一.excel檔案和工作簿
excel檔案就是excel工作簿,excel檔案開啟需要excel程的支援;
Workbooks 工作簿集合,泛指excel檔案或工作簿;
Workbooks(“A.xls”),名稱為A的excel工作簿;
Sub t1()
Workbooks("A.xls").Sheets(1).Range("a1") = 100 //某個工作簿的某個工作表的某個單元格=100
End Sub
workbooks(2),按開啟順序,第二個開啟的工作簿;
Sub t2()
Workbooks(2).Sheets(2).Range("a1") = 200
End Sub
ActiveWorkbook ,當開啟多個excel工作簿時,你正在操作的那個就是ActiveWorkbook(活動工作簿);
Thisworkbook,VBA程式所在的工作簿,無論你開啟多少個工作簿,無論當前是哪個工作簿是活動的,thisworkbook就是指它所在的工作簿;
(區別:一個是正在操作的工作簿,一個是程式碼所在的工作簿)
工作簿視窗
Windows(“A.xls”),A工作簿的視窗,使用windows可以設定工作簿視窗的狀態,如是否隱藏等;
Sub t3()
Windows("A.xls").Visible = False //工作簿介面隱藏(使用名稱)
End Sub
Sub t4()
Windows(2).Visible = True //第幾個開啟的工作簿視窗
End Sub
二.操作技巧
’1 判斷A.Xls檔案是否存在
Sub W1()
If Len(Dir("d:/A.xls")) = 0 Then //判斷是否存在
MsgBox "A檔案不存在"
Else
MsgBox "A檔案存在"
End If
End Sub
’2 判斷A.Xls檔案是否開啟
Sub W2()
Dim X As Integer
For X = 1 To Windows.Count
If Windows(X).Caption = "A.XLS" Then //遍歷所有開啟的工作簿
MsgBox "A檔案開啟了"
Exit Sub
End If
Next
End Sub
’3 excel檔案新建和儲存
Sub W3()
Dim wb As Workbook //宣告一個工作簿型別變數(盒子中只能放工作簿)
Set wb = Workbooks.Add //使用set給物件變數賦值,使用add方法
wb.Sheets("sheet1").Range("a1") = "abcd" //單元格賦值
wb.SaveAs "D:/B.xls" //工作簿儲存
End Sub
’4 excel檔案開啟和關閉
Sub w4()
Dim wb As Workbook //宣告物件變數
Set wb = Workbooks.Open("D:/B.xls") ///開啟檔案,放入wb變數
MsgBox wb.Sheets("sheet1").Range("a1").Value
wb.Close False //不儲存並關閉檔案
End Sub
’5 excel檔案儲存和備份
Sub w5()
Dim wb As Workbook //宣告
Set wb = ThisWorkbook //賦值
wb.Save //儲存
wb.SaveCopyAs "D:/ABC.xls" //備份
End Sub
’6 excel檔案複製和刪除
Sub W6()
FileCopy "D:/ABC.XLS", "E:/ABCd.XLS" //被複制的檔案-存放的檔案和路徑
Kill "D:/ABC.XLS" //刪除檔案
End Sub
10excel工作表操作
1.excel工作表的分類
excel工作表有兩大類,一類是我們平常用的工作表(worksheet)-,另一類是圖表、巨集表等。這兩類的統稱是sheets;
(sheets 工作表集合,泛指excel各種工作表)*
Sheets(“A”):是指名稱為A的excel工作表
Sub t1()
Sheets("A").Range("a1") = 100
End Sub
workbooks(2),按開啟順序,第二個開啟的工作簿。(按照從左到右的先後順序,包含隱藏的工作表)
Sub t2()
Sheets(2).Range("a1") = 200
End Sub
ActiveSheet ,當開啟多個excel工作簿時,你正在操作的那個就是ActiveSheet
2.操作技巧
’1 判斷A工作表檔案是否存在
Sub s1()
Dim X As Integer
For X = 1 To Sheets.Count //遍歷所有工作表
If Sheets(X).Name = "A" Then
MsgBox "A工作表存在"
Exit Sub
End If
Next
MsgBox "A工作表不存在"
End Sub
’2 excel工作表的插入
Sub s2()
Dim sh As Worksheet
Set sh = Sheets.Add //新增
sh.Name = "模板"
sh.Range("a1") = 100
End Sub
’3 excel工作表隱藏和取消隱藏
Sub s3()
Sheets(2).Visible = True //可見
End Sub
’4 excel工作表的移動
Sub s4()
Sheets("Sheet2").Move before:=Sheets("sheet1") //sheet2移動到sheet1前面
Sheets("Sheet1").Move after:=Sheets(Sheets.Count) //sheet1移動到所有工作表的最後面
End Sub
’6 excel工作表的複製
Sub s5() '在本工作簿中
Dim sh As Worksheet
Sheets("模板").Copy before:=Sheets(1)
Set sh = ActiveSheet
sh.Name = "1日"
sh.Range("a1") = "測試"
End Sub
Sub s6() '另存為新工作簿
Dim wb As Workbook
Sheets("模板").Copy
Set wb = ActiveWorkbook
wb.SaveAs ThisWorkbook.Path & "/1日.xls"
wb.Sheets(1).Range("b1") = "測試"
wb.Close True
End Sub
’7 保護工作表
Sub s7()
Sheets("sheet2").Protect "123"
End Sub
Sub s8() '判斷工作表是否新增了保護密碼
If Sheets("sheet2").ProtectContents = True Then
MsgBox "工作簿保護了"
Else
MsgBox "工作簿沒有新增保護"
End If
End Sub
’8 工作表刪除
Sub s9()
Application.DisplayAlerts = False
Sheets("模板").Delete
Application.DisplayAlerts = True
End Sub
’9 工作表的選取
Sub s10()
Sheets("sheet2").Select
End Sub
11單元格的選取
’1 表示一個單元格(a1)
Range(“a1”).Select;
Cells(1, 1).Select;
Range(“A” & 1).Select;
Cells(1, “A”).Select;
Cells(1).Select;
[a1].Select;
’2 表示相鄰單元格區域(a1:c5這個區域)
Range(“a1:c5”).Select
Range(“A1”, “C5”).Select
Range(Cells(1, 1), Cells(5, 3)).Select
Range(“a1:a10”).Offset(0, 1).Select
//offset(上下偏移量,左右偏移量)
Range(“a1”).Resize(5, 3).Select //a1為頂點,Resize(行數, 列數)
’3 表示不相鄰的單元格區域
Range(“a1,c1:f4,a7”).Select //注意:只用一對雙引號;
Union(Range(“a1”), Range(“c1:f4”), Range(“a7”)).Select;//連線多個單元格物件,作為一個整體表示
(union示例)
Sub dd()
Dim rg As Range, x As Integer
For x = 2 To 10 Step 2
If x = 2 Then Set rg = Cells(x, 1) //先給rg進行初始化
Set rg = Union(rg, Cells(x, 1)) //在舊的單元格容器中,通過迴圈,不斷增加新的單元格
Next x
rg.Select //選取連線起來的所有單元格
End Sub
4 表示行
Rows(1).Select //第一行
Rows(“3:7”).Select //第三行到第七行
Range(“1:2,4:5”).Select //選取不連續的行
Range(“c4:f5”).EntireRow.Select //EntireRow用於返回單元格區域所在的行
’5 表示列
Columns(1).Select
Columns(“A:B”).Select
Range(“A:B,D:E”).Select
Range(“c4:f5”).EntireColumn.Select //選取c4:f5所在的行
’6 重置座標下的單元格表示方法
Sub cc()
Range("b2").Range("a1") = 100 //以B2作為新的座標,將新座標的A1單元格賦值100
End Sub
’7 表示正在選取的單元格區域
Sub d2()
Selection.Value = 100
End Sub
012特殊單元格的定位
’1 已使用的單元格區域
Sub d1()
Sheets("sheet2").UsedRange.Select //選取已經使用過的區域
wb.Sheets(1).Range("a1:a10").Copy Range("i1") //將內容複製到以i1為頂點的單元格區域
End Sub
’2 某單元格所在的連續單元格區域(無論有邊還是頂點重疊,都是連續區域)
Sub d2()
Range("b8").CurrentRegion.Select //選擇以B8為頂點的連續區域
End Sub
’3 兩個單元格區域共同的區域(選取區域的交集)
Sub d3()
Intersect(Columns("b:c"), Rows("3:5")).Select
End Sub
’4 呼叫定位條件選取特殊單元格(含空格、含註釋、含常量、含公示)
Sub d4()
Range("A1:A6").SpecialCells(xlCellTypeBlanks).Select //選取區域內的空單元格
End Sub
’5 端點單元格
Sub d5()
Range("a65536").End(xlUp).Offset(1, 0) = 1000 //從最後一個單元格向上找最近的一個非空空單元格,並向下偏倚一行
End Sub
Sub d6()
Range(Range("b6"), Range("b6").End(xlToRight)).Select //從左向右選
End Sub
例:查詢客戶首次還款月份
Sub test()
Dim x As Integer //宣告
For x = 2 To 6 //選擇範圍,遍歷
If Cells(x, 2) > 0 Then
Cells(x, "N") = "1月"
Else
Cells(x, "N") = Range("b" & x).End(xlToRight).Column - 1 & "月" //從B列向右找,得到非空單元格所在列數,根據數量關係求得相應月份
End If
Next x
End Sub
相關文章
- 快速突擊 Spring Cloud GatewaySpringCloudGateway
- 藍橋盃賽前突擊
- 【面經】Java面試突擊Java面試
- 【面經】資料庫面試突擊資料庫面試
- 突擊面試,我還是太菜了。面試
- VBA 知識
- 突擊學習之資料庫基礎彙總資料庫
- Excel VBA小程式 -使 用VBA實現VLOOKUP函式查詢?Excel函式
- 面試突擊50:單例模式有幾種寫法?面試單例模式
- 突擊併發程式設計JUC系列-併發工具 Semaphore程式設計
- FIN2020 Excel and VBAExcel
- VBA命令按鈕操作
- 面試突擊:MVCC 和間隙鎖有什麼區別?面試MVC
- 用 (Excel) VBA 讀取 OneNote!Excel
- Python與Excel VBA比較PythonExcel
- 突擊檢查:Java面試之多執行緒&併發篇(11)Java面試執行緒
- 突擊檢查:Java面試之多執行緒&併發篇(10)Java面試執行緒
- 螢火突擊公測開啟!戰術奪金,百萬撤離!
- 阿里面試官的突擊面試,被問到當場自閉!!!阿里面試
- 《暗區突圍》會成為硬核擬真射擊手遊的代表嗎?
- 牛皮!Alibaba內部備受推崇的“Java突擊寶典”果然不一樣Java
- 在 Alibaba 廣受喜愛的“Java 突擊寶典”簡直太牛了Java
- 主體信用分+重點突擊,2019小遊戲生態良性向好遊戲
- 面對國產基礎軟體困境,進擊的星環如何突圍?
- Excel VBA活動抽獎小程式Excel
- Excel VBA 利用FileSystemObject處理檔案ExcelObject
- VBA 自定義常用函式 (備用)函式
- VBA中使用EXCEL工作表函式Excel函式
- 微信小程式單擊事件與長按事件衝突的解決辦法微信小程式事件
- 韓國警察突擊非法使用廉價工業用電的比特幣礦工比特幣
- Excel vba自定義函式公式智慧提示Excel函式公式
- 記錄一個批次貼數的vba
- 突想
- 韌性系統: 應對突發衝擊,兼顧未來發展(附下載)
- VBA和Python到底哪個比較難學Python
- 簡單演示Excel中VBA程式碼的使用Excel
- 【VBA】シートをクリアする
- VBA - WPS 修改段落、表格、標題的宏