宏是什么宏就是錄像機(jī)功能、可以錄制一些基本的操作。
vba 是編輯宏的語(yǔ)言,可以把宏實(shí)現(xiàn)拓展。 1.帶有宏的工作表保存1.帶有宏的工作表要保存為 xlsm 格式,保存的時(shí)候會(huì)提示。
xlsx 保存的只是普通的 excel(excel安全機(jī)制導(dǎo)致的) 2.相對(duì)引用與未使用相對(duì)引用未使用相對(duì)引用錄制的宏是 固定單元格的 (Range)
使用相對(duì)引用錄制的宏是 活動(dòng)單元格的(ActiveCell) 3.宏不能撤銷–只能刪除宏不能撤銷--只能刪除(右鍵--格式--清除格式) 4.表單控件運(yùn)行宏
插入--按鈕--托選區(qū)域--選擇要運(yùn)行的宏 (wps 的不在開(kāi)發(fā)工具處)
右鍵點(diǎn)擊按鈕進(jìn)入編輯狀態(tài)--左鍵可以移動(dòng)按鈕 5.自定義工具欄添加宏 文件--選項(xiàng)--快速訪問(wèn)工具欄--宏(wps 中沒(méi)有) 6.錄制新宏 保存到
(新工作薄、當(dāng)前工作?。r(shí),將宏保存到單一的工作薄中
別的Excel 工作薄也想使用這個(gè)宏,需要將保存有宏的工作薄打開(kāi)才能使用。
保存到
個(gè)人工作薄時(shí)候(wps沒(méi)有)相當(dāng)創(chuàng)建了一個(gè)文件 personal.xlsb 工作薄
視圖--隱藏 personal.xlsb可以隱藏掉
視圖--取消隱藏 personal.xlsb可以顯示出來(lái) vba開(kāi)發(fā)7.vba 開(kāi)發(fā)環(huán)境項(xiàng)目
-- EXCEL 對(duì)象
-- sheet1 (工作表1)
-- sheet2 (工作表2)
-- ThisWorkbook (工作薄)
-- 模塊
-- 模塊1(錄制的宏對(duì)應(yīng)的代碼的地方)
模塊可以導(dǎo)入也可以導(dǎo)出 格式為 xx.bas 8.語(yǔ)法
Sub 子程序代碼名字()
MsgBox "這是我的第一個(gè)VBA代碼"
End Sub
' -- 注釋符號(hào)
Sub 表示一個(gè)子程序,可以理解為一串代碼的集合
MsgBox 彈窗
每句代碼結(jié)束不用加 分號(hào)
注意: 一個(gè) 模塊中可以有 多個(gè) Sub 子程序代碼塊 9.運(yùn)行1.選中對(duì)應(yīng) sub 代碼 --直接 點(diǎn)運(yùn)行
2.視圖--立即窗口--輸入
Call 子程序代碼名字
--回車 10. 變量聲明 ①變量聲明
格式:
Dim 變量名 As 變量類型
變量名 = 值
如:Dim score As Integer
score =100
· 變量不賦值有默認(rèn)值
②多變量聲明
Dim 變量名1 As 變量類型1,變量名2 As 變量類型2
③變量可以不指定類型
Dim 變量名
變量名 = 值
·變量可以不指定類型(variant:可變數(shù)據(jù)類型),不會(huì)報(bào)錯(cuò),但占據(jù)空間不確定
④防止變量不聲明使用
1.Sub 上面寫(xiě) Option Explicit
2. 工具--選項(xiàng)--編輯器--要求變量聲明 11. 數(shù)據(jù)類型 Byte 1(字節(jié))
Integer 2(字節(jié)) 默認(rèn)值 0
Long 4(字節(jié))
Currency 8(字節(jié))
Single 4(字節(jié))
Double 8(字節(jié))
Boolean 2 True/Fale
Date 8
String
日期格式定義:
Dim birthDay As Date
birthDay = #1991/12/12#
·日期前后加要加 # 號(hào),而且會(huì)自動(dòng)格式化
·顯示日期格式會(huì)跟隨電腦系統(tǒng)的顯示格式 12.變量 局部變量
Sub 里面 聲明的變量,當(dāng)前的sub 能使用
全局變量
第一個(gè)Sub 上面 聲明的變量,當(dāng)前整個(gè)模塊的sub 都能使用該變量。
Dim score As Integer
Sub helloWorld()
xxx
End Sub
Sub helloWorld()
xxx
End Sub
超全局變量
第一個(gè)Sub 上面 聲明的變量 將 Dim 改為 public,別的模塊的 sub 也能使用該變量。
public score As Integer 13. 變量 的 static 的用法 Sub helloWorld()
Static count As Integer
count = count + 1
MsgBox "您已經(jīng)運(yùn)行了:" & count &"次"
End Sub
static 修飾的變量會(huì)聲明超出子程序的范圍,但是在第二個(gè)子程序無(wú)法引用
(類似該程序的 static 修飾的變量 加了循環(huán),運(yùn)行一次,修改一下變量)
想停止 count 變量 需要
·關(guān)閉工作薄,停止程序
·點(diǎn)停止按鈕,重新設(shè)置 14. With語(yǔ)句 避免每次都要重復(fù)寫(xiě)對(duì)象
with 對(duì)象
.屬性1=屬性值
.屬性2=屬性值
……
.屬性N=屬性值
end with 15.常量
Const pi As Double = 3.14159
·定義常量用 Const 而不是 Dim
·定義常量的時(shí)候要直接賦值
·常量的值不允許被修改
局部常量
Sub 里面 聲明的常量,當(dāng)前的sub 能使用
全局常量
第一個(gè)Sub 上面 聲明的常量,當(dāng)前整個(gè)模塊的sub 都能使用該常量。
Const pi As Double = 3.14159
Sub helloWorld()
xxx
End Sub
Sub helloWorld()
xxx
End Sub
超全局常量
public Const pi As Double = 3.14159
第一個(gè)Sub 上面 16.算數(shù)運(yùn)算符 +、-、*、/、^(冪運(yùn)算)、Mod(求模) 17.比較運(yùn)算符 > 、>=、 <、 <=、 =(等于,區(qū)別賦值號(hào) 可以把比較的變量加上小括號(hào)) 、
<> (不等于)
Like (字符串匹配) 18.邏輯運(yùn)算符
And(與) 、OR(或)、 Not(非)
XOR(邏輯排除) : 如果表達(dá)式中只有一個(gè)表達(dá)式的值為True,則結(jié)果為True。 19.連接操作符& : 拼接兩個(gè)值
1 & 2 = 12
"1" & "2" = 12
+ : 將兩個(gè)值添加為變量,其值是數(shù)字
1 + 2 = 3
"1" + "2" = 12 20.命名規(guī)范數(shù)字、字母、_ 下劃線;數(shù)字不能做開(kāi)頭 21.if 結(jié)構(gòu)
①If 判斷條件 Then
代碼語(yǔ)句
End If
②If 判斷條件 Then
代碼語(yǔ)句
Else
代碼語(yǔ)句
End If
③If 判斷條件 Then
代碼語(yǔ)句
ElseIf 判斷條件 Then
代碼語(yǔ)句
End If 22. select 結(jié)構(gòu)(類似 switch)Select Case 變量
Case Is 表達(dá)式(這里不用寫(xiě)變量)
表達(dá)式
Case Is 表達(dá)式(這里不用寫(xiě)變量)
表達(dá)式
Case Else
表達(dá)式
End Select
Select Case score
Case Is > 90
MsgBox "優(yōu)秀"
Case Is > 70
MsgBox "良好"
Case Else
MsgBox "差"
End Select 23. For Next 語(yǔ)句 For 循環(huán)變量初始賦值 to 循環(huán)變量最大值
執(zhí)行語(yǔ)句
Next 循環(huán)變量 (修改循環(huán)變量)
Dim num As Integer
For num = 1 To 5
MsgBox num
Next num 24.step的應(yīng)用
For 循環(huán)變量初始賦值 to 循環(huán)變量最大值 step 數(shù)字
執(zhí)行語(yǔ)句
Next 循環(huán)變量 (修改循環(huán)變量,帶自增效果)
·step 循環(huán)變量的循環(huán)間隔 25.中途退出 for Next 循環(huán) ...
Exit For (退出 for循環(huán) ,類似 break)
... 26. Do while 循環(huán) (滿足條件繼續(xù)循環(huán)) Do while 循環(huán)條件
執(zhí)行語(yǔ)句
修改循環(huán)變量
loop 27.Do Until 循環(huán) (循環(huán)直到不滿足條件)
Do Until 循環(huán)條件
執(zhí)行語(yǔ)句
修改循環(huán)變量
loop 28.無(wú)參數(shù)子過(guò)程 子過(guò)程(子函數(shù)、子程序)
Sub test()
...
End Sub
有參數(shù)子過(guò)程
Sub test(num1 As Integer,num2 As Integer)
...
End Sub
調(diào)用:無(wú)參數(shù) test()
有一個(gè)參數(shù) test(100)
有多個(gè)參數(shù) test 2,100 (不帶括號(hào))
Exit Sub (中途退出子程序) 29. 自定義函數(shù)自定義函數(shù):
自定義的函數(shù)可以在 Excel 表格單元格中直接調(diào)用
函數(shù)過(guò)程語(yǔ)法:
Function 函數(shù)名(參數(shù)1,參數(shù)2) AS 數(shù)據(jù)類型 (是返回值的數(shù)據(jù)類型)
函數(shù)名 = 值
End Function
調(diào)用:
Sub test()
函數(shù)名(參數(shù)1,參數(shù)2)
End Sub
·函數(shù)過(guò)程有返回值,子過(guò)程沒(méi)有返回值
·函數(shù)名作為函數(shù)返回變量
·函數(shù)調(diào)用 函數(shù)名() 帶括號(hào) 30.一維數(shù)組 聲明定義一維數(shù)組
①Dim 數(shù)組名(開(kāi)始 To 結(jié)束) As Integer
Dim MyArray(1 To 5) As Integer
②Dim 數(shù)組名(值) As Integer
·默認(rèn)開(kāi)始下標(biāo)為 0
·在第一個(gè)sub最上面 添加 option Base 1,下標(biāo)是從1開(kāi)始
③使用Array函數(shù)創(chuàng)建常量數(shù)組:
一維常量數(shù)組:Array("A",1,"C")
數(shù)組賦值
數(shù)組名(下標(biāo))= 值
MyArray(1) =10
訪問(wèn)數(shù)組
數(shù)組名(下標(biāo))
MyArray(1)
遍歷
Dim Index As integer
For index = LBound(數(shù)組名) To UBound(數(shù)組名)
MsgBox MyArray(Index)
Next index
數(shù)組方法:
LBound(數(shù)組名) :數(shù)組的最小角標(biāo)
UBound(數(shù)組名) :數(shù)組的最大角標(biāo)
Split(String,char):返回一個(gè)數(shù)組,其中包含基于分隔符分割的特定數(shù)量的值。
Split("Red $ Blue $ Yellow","$")
Join(array,char) :函數(shù)返回一個(gè)包含數(shù)組中指定數(shù)量的子串的字符串。
Filter(array,char,是否包含):函數(shù)返回一個(gè)基于零的數(shù)組,
其中包含基于特定過(guò)濾條件的字符串?dāng)?shù)組的子集。
是否包含 true: 篩選所有含char的數(shù)值組成一個(gè)新數(shù)組
是否包含 false:篩選所有不含char的數(shù)值組成一個(gè)新數(shù)組
IsArray(數(shù)組名):函數(shù)返回一個(gè)布爾值,指示指定的輸入變量是否是數(shù)組變量。
Erase 數(shù)組名 :用于重置固定大小數(shù)組的值并釋放動(dòng)態(tài)數(shù)組的內(nèi)存。 它的行為取決于數(shù)組的類型 31.二維數(shù)組 Dim 數(shù)組名(行開(kāi)始 To 行結(jié)束,列開(kāi)始 To 列結(jié)束) As Integer 32.動(dòng)態(tài)數(shù)組(可以動(dòng)態(tài)修改下標(biāo)大?。?/h2>
定義一維動(dòng)態(tài)數(shù)組
Dim 數(shù)組名() As Integer
明確數(shù)組的下標(biāo)
ReDim 數(shù)組名(開(kāi)始 To 結(jié)束)
ReDim 動(dòng)態(tài)調(diào)整數(shù)組時(shí),會(huì)將之前的賦值都自動(dòng)抹除,
添加 Preserve 將保留歷史數(shù)據(jù)
ReDim Preserve 數(shù)組名(開(kāi)始 To 結(jié)束) 33.對(duì)象的層級(jí)框架
Applocation(Excel)--Workbook(工作薄) -- Worksheet(工作表)
| | |
shapes Range 單元格 Charts
Applocation.Workbooks("xxx").worksheets("xxx").Range("xxx"):
層級(jí)使用時(shí)要用集合 帶S的,表示 很多xx中的某一個(gè)具體的
注意:集合也是對(duì)象: Workbooks、worksheets、sheets、cells
使用: 如 屬性 Range("A1").value
Range("A1").value =100
方法 Range("A1").Clear 34.Range()、cells()、 Offset 一、單元格的引用
1.單元格的引用 Range()
①引用某個(gè)單元格
Range("單元格坐標(biāo)").Value = 值
Range("A1").Value = 100
②引用多個(gè)單元格
Range("單元格坐標(biāo)1,單元格坐標(biāo)2,..").Value = 值
Range("A1,c2,b5").Value = 100
③引用某個(gè)單元格區(qū)域
Range("區(qū)域左上單元格坐標(biāo):區(qū)域右下單元格坐標(biāo)").Value = 值
Range("A1:C5").Value = 100
④引用不連續(xù)的單元格區(qū)域
Range("區(qū)域左上單元格坐標(biāo)1:區(qū)域右下單元格坐標(biāo)1,
區(qū)域左上單元格坐標(biāo)2:區(qū)域右下單元格坐標(biāo)2").Value = 值
⑤引用單元格區(qū)域名稱
Excel 中選取單元格區(qū)域--在單元格坐標(biāo)處修改名字
Range("區(qū)域名字").Value = 值
賦值時(shí),.value可以省略掉
2.單元格的引用 []
[A1] '表示A1單元格
[A1:A9] '表示A1到A9單元格
3.單元格的引用 []
Cells 屬性(好處是行號(hào)列標(biāo)都是數(shù)字)
引用工作表中的某一個(gè)單元格
Worksheets("工作表名").cells(行號(hào)數(shù)字,列標(biāo)數(shù)字)
Worksheets("sheet1").cells(2,3).Value =100
引用單元格區(qū)域
Range(Cells(行號(hào)數(shù)字,列標(biāo)數(shù)字),Cells(行號(hào)數(shù)字,列標(biāo)數(shù)字))
引用單元格中的某個(gè)單元格
Range("坐標(biāo)開(kāi)始,坐標(biāo)結(jié)束").Cells(行號(hào)數(shù)字,列標(biāo)數(shù)字)
二、行和列的引用
①引用單行單列
Range("行號(hào):行號(hào)").value =100
Range("10:10").value =100
Range("列標(biāo):列標(biāo)")
Range("B:B")
②引用多行(可不相連)
Range("行號(hào)1:行號(hào)1,行號(hào)2:行號(hào)2..")
Range("10:10,13:13")
③引用多列(可不相連)
Range("列標(biāo)1:列標(biāo)1,列標(biāo)2:列標(biāo)2..")
Range("A:A,F:F")
④引用相連的行或列
Range("行號(hào)開(kāi)始:行號(hào)結(jié)束")
Range("列標(biāo)開(kāi)始:列標(biāo)結(jié)束")
另外一種寫(xiě)法:
Rows("行號(hào)開(kāi)始:行號(hào)結(jié)束")
Columns("列標(biāo)開(kāi)始:列標(biāo)結(jié)束")
三、Offset屬性
offset屬性(偏移)
Range("坐標(biāo)").Offset(行號(hào)數(shù)字,列標(biāo)數(shù)字)
```javascript
35.VBA對(duì)單元格的常見(jiàn)操作
1.單元格的值獲取和賦值 x.Value
Range("A1").Value
Range("A1").Value = 值
2.設(shè)置單元格的填充色 x.Interior.ColorIndex = 值
Range("B3").Interior.ColorIndex = 3 '值有1-56,代表56種顏色
3.單元格的復(fù)制 x.copy y
Range("B3").copy Range("C3") '將B3的值,復(fù)制到C3單元格
4.單元格的剪切 x.cut y
Range("A1").cut Range("B3") '將A1的值,剪切到B3單元格 36.Select 與 Activate 方法 Range("坐標(biāo)").Select 選中單元格
Range("坐標(biāo)").Activate 在選中區(qū)域中選中活動(dòng)的單元格
注意:Activate 選中活動(dòng)單元格
Range("B26:F31").Select
Range("B27").Activate
引用選擇的單元格/單元格區(qū)域
Selection
Selection.Value=100
引用活動(dòng)的單元格
ActiveCell
ActiveCell.Value=100 37.End (有空格單元格會(huì)選不上)
End 屬性 模擬Ctrl+ 方向鍵 在數(shù)據(jù)區(qū)域中選取的效果
End(常量) 常量:xlDown、xlUp、xlToRight、 xlToLeft
選中一個(gè)單元格
Range("坐標(biāo)").End(xlToRight).Select
選中一個(gè)區(qū)域 (End 可以連用)
Range("坐標(biāo)",Range("坐標(biāo)").End(xlDown).End(xlToRight)).Select 38.UsedRange 它是worksheet 的一個(gè)屬性,代表指定工作表上的 所用區(qū)域
工作表.UsedRange.方法或者屬性
Sheet3.UsedRange.Select 39.CurrentRegion (有空格單元格也可以選上) 它是單元格 的一個(gè)屬性,代表指定單元格所在的區(qū)域
單元格.CurrentRegion.方法或者屬性
Range("a5").CurrentRegion.Select 40.字符串函數(shù)instr(從第幾個(gè)開(kāi)始,字符串1,字符串2) 返回 0 表示未找到
'從規(guī)定的位置開(kāi)始查找,返回字符串2在字符串1中的位置,從左到右搜索。
MsgBox ("Line 1 : " & InStr(1, “safdfasdf”, "s"))
InStrRev(string1,string2[,start,[compare]])
'從規(guī)定的位置開(kāi)始查找,返回字符串2在字符串1中的位置,搜索從右到左
msgbox("Line 1 : " & InStrRev("asdfasdf","s",Len("string1")))
Compare - 一個(gè)可選參數(shù)。 指定要使用的字符串比較。它可以采用以下值。
0 = vbBinaryCompare - 執(zhí)行二進(jìn)制比較(默認(rèn))
1 = vbTextCompare - 執(zhí)行文本比較
Lcase(String)/UCase(String)
小寫(xiě)轉(zhuǎn)大寫(xiě)/大寫(xiě)轉(zhuǎn)小寫(xiě)
Left(String, Length)
'從字符串的左側(cè)返回指定數(shù)量的字符
Right(String, Length)
'從字符串的右側(cè)返回指定數(shù)量的字符
Mid(字符串,從第幾個(gè)開(kāi)始,長(zhǎng)度)
'返回給定輸入字符串中指定數(shù)量的字符
Ltrim(String) /RTrim(String)/Trim(String)
'刪除左側(cè)的空格/刪除右側(cè)的空格/刪除兩頭的空格
Len(String)
'返回給定輸入字符串的長(zhǎng)度,包括空格
space(number)
'用特定數(shù)量的空格填充字符串
msgbox("aaa" & Space(2)& "bbb")
StrComp(string1,string2[,compare])
'比較兩個(gè)給定字符串后,返回一個(gè)整數(shù)值。
如果 String1 < String2, 那么 StrComp 函數(shù)返回 -1
如果 String1 = String2, 那么 StrComp 函數(shù)返回 0
如果 String1 > String2, 那么 StrComp 函數(shù)返回 1
msgbox("Line 1 :" & StrComp("Microsoft","Microsoft"))
Replace ( string1, find, replacement, [start, [count, [compare]]] )
'返回一個(gè)字符串,該字符串中指定的子字符串已被替換成另一子字符串,并且替換發(fā)生的開(kāi)始位置和次數(shù)也是指定的。
msgbox("Line 1 :" & Replace("alphabet", "a", "e", 1, 1))
String(number,character)
'填充[number]個(gè)[character]
msgbox("Line 1 :" & String(3,"$"))
StrReverse(string)
'反轉(zhuǎn)指定的字符串 41.日期函數(shù)Date()
'返回當(dāng)前的系統(tǒng)日期
CDate(date)
'將有效的日期和時(shí)間表達(dá)式轉(zhuǎn)換為系統(tǒng)類型日期
MsgBox ("The Value of a : " & CDate("Jan 01 2020"))
DateAdd(interval,number,date)
'將有效的日期和時(shí)間表達(dá)式轉(zhuǎn)換為類型日期
msgbox("Line 1 : " &DateAdd("h",1,"01-Jan-2013 12:00:00"))
interval - 一個(gè)必需的參數(shù)。 它可以采用以下值。
d - 一年中的一天
m - 一年中的月份
y - 一年中的年份
yyyy - 年份
w - 工作日
ww - 星期
q - 季度
h - 小時(shí)
m - 分鐘
s - 秒鐘
Number - 必需的參數(shù)。它可以采用正值和負(fù)值的參數(shù)
DateDiff(interval, date1, date2 [,firstdayofweek[, firstweekofyear]])
'返回兩個(gè)指定的時(shí)間間隔之間的差值。
msgbox("Line 2 : " &DateDiff("q","01-Jan-09 00:00:00","01-Jan-10 23:59:00"))
DatePart(interval,date[,firstdayofweek[,firstweekofyear]])
'返回給定日期的特定部分
msgbox("Line 4 : " & DatePart("m","2013-01-15"))
Day(date)
'返回1到31之間的數(shù)字,表示指定日期的一天
msgbox(Day("2018-06-30"))
DateSerial(year,month,day)
'返回指定的日期,月份和年份參數(shù)的日期
msgbox(DateSerial(2018,5,10))
FormatDateTime(date,format)
'格式化并返回有效的日期和時(shí)間表達(dá)式
msgbox("Line 5 : " & FormatDateTime("2018-08-15 20:25",4))
Format - 一個(gè)可選參數(shù)。指定要使用的日期或時(shí)間格式的值。
它可以采取以下值 -
0 = vbGeneralDate - 默認(rèn)值 15/08/2018 8:25:00 PM
1 = vbLongDate - 返回長(zhǎng)日期 Thursday, 15 August 2018
2 = vbShortDate - 返回短日期 15/08/2018
3 = vbLongTime - 返回長(zhǎng)時(shí)間 8:25:00 PM
4 = vbShortTime - 返回短時(shí)間 20:25
IsDate(expression)
'判斷是否為日期,它都會(huì)返回一個(gè)布爾值
msgbox("Line 1 : " & IsDate("Nov 03, 1950"))
Month(date)
'返回1到12之間的數(shù)字,表示指定日期的月份。
msgbox("當(dāng)前的月份的值是:"&Month("2018-06-30"))
Year(date)
'返回一個(gè)表示指定日期的年份的整數(shù)
msgbox(Year("2018-06-30"))
MonthName(month[,toabbreviate])
'回指定日期的月份名稱。
msgbox("Line 1 : " & MonthName(01,True)) 1月
msgbox("Line 2 : " & MonthName(01,false)) 一月
Weekday(date[,firstdayofweek])
'返回一個(gè)從1到7的整數(shù),表示指定日期的星期幾。
msgbox("Line 1: " & Weekday("2013-05-16",1))
WeekdayName(weekday[,abbreviate[,firstdayofweek]])
'返回指定日期的工作日名稱
msgbox("Line 2 : " &WeekdayName(2,True))
msgbox("Line 3 : " &WeekdayName(1,False))
msgbox("Line 4 : " &WeekdayName(2,True,0))
msgbox("Line 5 : " &WeekdayName(1,False,1)) 42.時(shí)間函數(shù) Now()
返回當(dāng)前的系統(tǒng)日期和時(shí)間。 yyyy/mm/dd hh:mm:ss
Hour(time)
返回0到23之間的數(shù)字,表示指定時(shí)間戳的一天中的小時(shí)。
Minute(time)
返回0到59之間的數(shù)字,表示指定時(shí)間戳的分鐘數(shù)值。
econd(time)
返回0到59之間的數(shù)字,表示指定時(shí)間戳的秒鐘數(shù)值。
Time()
返回當(dāng)前的系統(tǒng)時(shí)間。 hh:mm:ss
Timer()
返回自凌晨00:00起的秒數(shù)和毫秒數(shù)。
TimeSerial(hour,minute,second)
返回指定小時(shí),分鐘和秒值的時(shí)間。
msgbox(TimeSerial(7*2,60/3,15+3)) 14:20:18
TimeValue(StringTime)
將給定的輸入字符串轉(zhuǎn)換為有效的時(shí)間。
MsgBox (TimeValue("5:15")) 5:15:00 43. VBA消息框 MsgBox(prompt[,buttons][,title][,helpfile,context])
Prompt 顯示在對(duì)話框中的消息的字符串
buttons 可選的參數(shù)。數(shù)值表達(dá)式
Title 對(duì)話框的標(biāo)題欄文字 44.VBA 的 VBA輸入框 InputBox(prompt[,title][,default][,xpos][,ypos][,helpfile,context])
Default - 一個(gè)可選的參數(shù)。顯示在文本框中的默認(rèn)文本
XPos - 一個(gè)可選的參數(shù)。X軸的位置
YPos - 一個(gè)可選的參數(shù)。Y軸的位置 45.正則引用外部:工具--引用--勾選 Microsoft VBScript Regular Expression 5.5
創(chuàng)建正則對(duì)象
① Dim reg As New RegExp new 對(duì)象
② Set reg = CreateObject("VBScript.RegExp") 創(chuàng)建對(duì)象 46.錯(cuò)誤處理 ①On Error Resume Next
'當(dāng)代碼運(yùn)行錯(cuò)誤時(shí)忽略,繼續(xù)向下運(yùn)行
② GoTo str
執(zhí)行代碼
str: 47. dir(“目錄”) 獲取文件名 dir("D:\DEST\hello\") :路徑結(jié)束要加 48.超鏈接 sheet1.HyperLinks.Add 超鏈接放置在Excel中的位置,超鏈接地址, _
子地址,光標(biāo)懸浮提示,將超鏈接顯示為字符 49. 一句代碼過(guò)長(zhǎng),折行時(shí) 加空格 再加 _ Sheet4.Hyperlinks.Add Range("A1"), _
"D:\Users\Desktop\記錄.xls\", "sheet1!a1", "超鏈接", "點(diǎn)這里" 50.Dim 與 Set Dim obj '定義變量obj
Set obj=createobject("........") '將對(duì)象 賦值給obj變量
或者 = new xxx 51.字典字典不是Excel 自帶功能,需要引用后才能使用屬性和方法
① 前期綁定(有代碼提示,方便程序員調(diào)用方法屬性)
工具--引用--瀏覽--找到 scrrun.dll
引用-- Microsoft Scripting Runtime
如:Dim dict As New Dictionary
dict.Add "jia", "學(xué)代碼"
② 后期綁定,利用使用(通過(guò)CreateObject函數(shù)創(chuàng)建使用)
綁定語(yǔ)句:Set o = CreateObject("scripting.dictionary")
字典方法和屬性
方法: Add Items Keys Remove RemoveAll Exits
屬性:Item Key Count CompareMode
object.Add(Key,item)
添加一條相對(duì)應(yīng)的關(guān)鍵字和條目到字典
key唯一,item 可以為空 或者 nothing
object.items
一維數(shù)組的形式返回字典中所有的條目
object.keys
一維數(shù)組的形式返回字典中所有的key
object.Exits(key)
判斷字典中是否包含key
object.Remove(key)
刪除字典中關(guān)鍵字對(duì)應(yīng)的條目
object.RemoveAll
刪除字典中所有的key和item
|