目錄
一,字符串操作.... 2
二,轉(zhuǎn)換函數(shù).... 2
三,時間函數(shù).... 3
四,Excel vba語句... 4
.1.啟用禁用事件.... 4
2. 啟用禁用警告.... 4
3.取消復(fù)制選區(qū).... 5
4.自動計算,禁用刷新.... 5
5. 狀態(tài)欄進(jìn)度.... 5
五,Excel單元格... 6
1.最后一行/列.... 6
2.單元格復(fù)制粘貼.... 6
3.設(shè)置單元格格式.... 6
六,Excel工作表... 7
1.判斷工作表是否存在.... 7
2.插入工作表.... 8
3.隱藏工作表.... 8
4.移動工作表.... 8
5.檢查工作表是否被保護(hù).... 9
七,集合和數(shù)組.... 9
1.重新定義數(shù)組.... 9
2.一維數(shù)組遍歷.... 9
3.二維數(shù)組遍歷.... 9
4.數(shù)組維度.... 9
八,文件操作.... 10
1.創(chuàng)建文件夾.... 10
2.遍歷當(dāng)前文件夾文件.... 11
Trim(String) '去掉string左右兩端空白
LTrim(String) '去掉string左端空白
RTrim(String) '去掉string右端空白
Len(String) '計算string長度
Left(String, x) '取string左段x個字符組成的字符串
Right(String, x) '取string右段x個字符組成的字符串
Mid(String, start, x) '取string從start位開始的x個字符組成的字符串
UCase(String) '轉(zhuǎn)換為大寫
LCase(String) '轉(zhuǎn)換為小寫
Space(x) '返回x個空白的字符串
Asc(String) '返回一個 integer,代表字符串中首字母的字符代碼
CBool(expression) '轉(zhuǎn)換為Boolean型
CByte(expression) '轉(zhuǎn)換為Byte型
CCur(expression) '轉(zhuǎn)換為Currency型
CDate(expression) '轉(zhuǎn)換為Date型
CDbl(expression) '轉(zhuǎn)換為Double型
CDec(expression) '轉(zhuǎn)換為Decemal型
CInt(expression) '轉(zhuǎn)換為Integer型
CLng(expression) '轉(zhuǎn)換為Long型
CSng(expression) '轉(zhuǎn)換為Single型
CStr(expression) '轉(zhuǎn)換為String型
CVar(expression) '轉(zhuǎn)換為Variant型
Val(String) '轉(zhuǎn)換為數(shù)據(jù)型
Str(number) '轉(zhuǎn)換為String
Now '返回一個 Variant (Date),根據(jù)計算機(jī)系統(tǒng)設(shè)置的日期和時間來指定日期和時間。
Date '返回包含系統(tǒng)日期的 Variant (Date)。
Time '返回一個指明當(dāng)前系統(tǒng)時間的 Variant (Date)。
Timer '返回一個 Single,代表從午夜開始到現(xiàn)在經(jīng)過的秒數(shù)。
Second(Time) '返回一個 Variant (Integer),其值為 0 到 59 之間的整數(shù),表示一分鐘之中的某個秒
Minute(Time) '返回一個 Variant (Integer),其值為 0 到 59 之間的整數(shù),表示一小時中的某分鐘
Hour(Time) '返回一個 Variant (Integer),其值為 0 到 23 之間的整數(shù),表示一天之中的某一鐘點(diǎn)
Day(Date) '返回一個 Variant (Integer),其值為 1 到 31 之間的整數(shù),表示一個月中的某一日
Month(Date) '返回一個 Variant (Integer),其值為 1 到 12 之間的整數(shù),表示一年中的某月
Year(Date) '返回 Variant (Integer),包含表示年份的整數(shù)。
Weekday(Date, [firstdayofweek]) '返回一個 Variant (Integer),包含一個整數(shù),代表某個日期是星期幾
TimeSerial(Hour, Minute, Second) '返回一個 Variant (Date),包含具有具體時、分、秒的時間。
DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]]) '返回 Variant (Long) 的值,表示兩個指定日期間的時間間隔數(shù)目
Application.EnableEvents = False
Application.EnableEvents = True
Application.DisplayAlerts = False
Application.DisplayAlerts = True
Application.CutCopyMode = False '
VBA通常在程序開始加兩句:
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
在結(jié)尾處再恢復(fù):
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
Sub Main()
Dim oldStatusBar
oldStatusBar = Application.DisplayStatusBar
Application.DisplayStatusBar = True
Application.StatusBar = '正在刷新...'
Application.StatusBar = '刷新完成!'
delay 2
Application.StatusBar = False
Application.DisplayStatusBar = oldStatusBar
End Sub
ActiveSheet.Range('A:A').Find(What: = '*', LookIn: = xlFormulas, SearchOrder: = xlByRows, SearchDirection: = xlPrevious).Row
ActiveSheet.Range('1:1').Find(What: = '*', LookIn: = xlFormulas, SearchOrder: = xlByRows, SearchDirection: = xlPrevious).Column
Sub RangeCopy()
Application.DisplayAlerts = False
Sheet1.Range('A1').CurrentRegion.Copy Sheet2.Range('A1')
Application.DisplayAlerts = True
End Sub
Public Sub RngFont()
With Range('A1').Font '對A1單元格進(jìn)行字體設(shè)置
.Name = '華文彩云' 'Name屬性返回或設(shè)置對象的名稱
.FontStyle = 'Bold'設(shè)置為”Italic”傾斜字體
.Size = 18 'Size屬性返回或設(shè)置字體大小
.ColorIndex = 3 '該顏色可指定為當(dāng)前調(diào)色板中顏色的編號
.Underline = 2 'Underline屬性返回或設(shè)置應(yīng)用于字體的下劃線
End With
End Sub
Sub CheckSheetExist()
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
Sub s2()
Dim sh As Worksheet
Set sh = Sheets.Add
sh.Name = '模板'
sh.Range('a1') = 100
End Sub
Sub s3()
Sheets(2).Visible = True
End Sub
Sub s4()
Sheets('Sheet2').Move before: = Sheets('sheet1') 'sheet2移動到sheet1前面
Sheets('Sheet1').Move after: = Sheets(Sheets.Count) 'sheet1移動到所有工作表的最后面
End Sub
If ActiveSheet.ProtectContents Or ActiveSheet.ProtectDrawingObjects Then MsgBox '工作表已保護(hù),本程序拒絕執(zhí)行!', 64, '友情提示': Exit Sub
ReDim Preserve
For i = LBound(aryData) To UBound(aryData)
aryData(i) = 1
Next
For i = LBound(aryData) To UBound(aryData)
For j = LBound(aryData, 2) To UBound(aryData, 2)
aryData(i, j) = 1
Next
Next
Public Function NumberOfArrayDimensions(arr As Variant) As Integer
'計算數(shù)組維數(shù)
Dim Ndx As Integer
Dim Res As Integer
On Error Resume Next
Do
Ndx = Ndx + 1
Res = UBound(arr, Ndx)
Loop Until Err.Number <> 0
NumberOfArrayDimensions = Ndx - 1
End Function
Function MkDir2(path)
If Dir(path, vbDirectory) = '' Then
MkDir path '建立文件夾
End If
End Function
Function DirFiles(ByVal mypath, Optional ByVal fileStr = '*.*')
'返回一個數(shù)組2列 '1 列 -純文件名+后綴 '2 列 -完整路徑
'3 列 純文件名 '4列 純后綴 '本函數(shù)默認(rèn)不搜索 隱藏文件
If mypath Like '*\' Then '總是把傳進(jìn)來的路徑處理成不帶斜杠的數(shù)據(jù)
mypath = Left(mypath, Len(mypath) - 1) '去掉最后的分隔符
End If
Dim dic
Set dic = CreateObject('scripting.dictionary')
Dim fname, k
fname = Dir(mypath & '\' & fileStr)
k = 0
Do While fname <> '' '不為空的時候 往下循環(huán)
k = k + 1
If fname Like fileStr Then '實(shí)現(xiàn)模糊搜索文件
dic(k) = fname '寫入第一個文件
End If
fname = Dir
Loop
Dim brr
If dic.Count = 0 Then
ReDim brr(0, 0)
Else
ReDim brr(1 To dic.Count, 1 To 4) '1列純文件名 2列完整文件名
For i = 1 To dic.Count
brr(i, 1) = dic(i) '純文件名
brr(i, 2) = mypath & '\' & brr(i, 1) '完整路徑+文件名
brr(i, 3) = Left(brr(i, 1), InStrRev(brr(i, 1), '.') - 1) '純文件名
brr(i, 4) = Mid(brr(i, 1), InStrRev(brr(i, 1), '.') + 1) '路徑
Next
End If
DirFiles = brr
'返回結(jié)果字典
End Function