EXCEL VBA基本操作之常用函数
1.字符串的操作。
函数名 | 函数说明 |
Replace | 在字符串中替换指定的字符串 |
Left | 字符串的左边开始,取字符串 |
Right | 字符串的右边开始,取字符串 |
Mid | 字符串的指定位置开始,取字符串 |
strSamp = "123456789"
strSamp = Replace(strSamp, "123", "000")
'返回000456789
strSamp = "111122223333111122223333"
strSamp = Replace(strSamp, "1111", "0000", 5)
'返回22223333000022223333
strSamp = "111122223333111122223333"
strSamp = Replace(strSamp, "1111", "0000", 1, 1)
'返回000022223333111122223333
strSamp = "111122223333111122223333"
strSamp = Replace(strSamp, "1111", "0000", 1, 2)
'返回000022223333000022223333
strSamp = "111122223333111122223333"
strSamp = Left(strSamp, 4)
'返回1111
strSamp = "111122223333111122223333"
strSamp = Right(strSamp, 5)
'返回23333
strSamp = "111122223333111122223333"
strSamp = Mid(strSamp, 13)
'返回111122223333
strSamp = "111122223333111122223333"
strSamp = Mid(strSamp, 13, 4)
'返回1111
函数名 | 函数说明 |
Len | 返回字符串的长度 |
Instr | 字符串匹配,返回最初出现的位置 |
strSamp = "111122223333111122223333"
intCount = Len(strSamp)
'24
strSamp = "111122223333111122223333"
intPoint = InStr(strSamp, "3333")
'9
strSamp = "111122223333111122223333"
intPoint = InStr(13, strSamp, "3333")
'21
函数名 | 函数说明 |
StrConv | 字符串转换成指定的形式 |
'大小写转换
strSamp = "aaaaa"
strSamp = StrConv(strSamp, 1)
'AAAAA
strSamp = "aaaaa"
strSamp = StrConv(strSamp, vbUpperCase)
'AAAAA
strSamp = "AAAAA"
strSamp = StrConv(strSamp, 2)
'aaaaa
strSamp = "AAAAA"
strSamp = StrConv(strSamp, vbLowerCase)
'aaaaa
'字符串的第一个字符转化成大写字符
strSamp = "aaaaa"
strSamp = StrConv(strSamp, 3)
'Aaaaa
strSamp = "aaaaa"
strSamp = StrConv(strSamp, vbProperCase)
'Aaaaa
'字符串内的半角文字 (1 字节)转化成全角文字 (2字节)
strSamp = "gao"
strSamp = StrConv(strSamp, 4)
'gao
strSamp = " gao "
strSamp = StrConv(strSamp, vbWide)
'gao
'字符串内的全角文字 (2 字节)转化成半角文字 (1字节)
strSamp = "gao"
strSamp = StrConv(strSamp, 8)
' gao
strSamp = "gao"
strSamp = StrConv(strSamp, vbNarrow)
' gao
'字符串内的平假名转化成片假名。
strSamp = "はひふへほ"
strSamp = StrConv(strSamp, 16)
'ハヒフヘホ
strSamp = "はひふへほ"
strSamp = StrConv(strSamp, vbKatakana)
'ハヒフヘホ
'字符串内的片假名转化成平假名假名。
strSamp = "ハヒフヘホ"
strSamp = StrConv(strSamp, 32)
'はひふへほ
strSamp = "ハヒフヘホ"
strSamp = StrConv(strSamp, vbHiragana)
'はひふへほ
函数名 | 函数说明 |
Format | 按照指定的形式,设定数值、日期、字符串等 |
'现在的系统时间
dtToday=Date
Debug.Print Format(dtToday,"yyyymmdd")
'20080822
Debug.Print Format(dtToday,"yyyy/mm/dd")
'2008/08/22
Debug.Print Format(dtToday,"gggee年")
'平成17年
Debug.Print Format(dtToday,"gge年")
'平17年
Debug.Print Format(dtToday,"ge")
'H17
Debug.Print Format(dtToday,"yyyy")
'2008
Debug.Print Format(dtToday,"mm")
'11
Debug.Print Format(dtToday,"dd")
'21
'现在系统的时刻
dtNow=Now
Debug.Print Format(dtNow,"hh:mm:ss")
'15:46:32
Debug.Print Format(dtNow,"hhmmss")
'154632
Debug.Print Format(dtNow,"hh")
'15
Debug.Print Format(dtNow,"HH:mm")
'15:46
Debug.Print Format(dtNow,"ss")
'32
lngData=777777777.7777
Debug.Print Format(lngData,"##,###.##")
'777,777,777.78
Debug.Print Format(lngData,"##,###.00")
'777,777,778.00
Debug.Print Format(lngData,"##,##0")
'777,777,778
Debug.Print Format(lngData,"##,###")
'777,777,778
Debug.Print Format(lngData,"\\###")
'\777777778
lngData=0.7
Debug.Print Format(lngData,"0.00%")
'70.00%
Debug.Print Format(lngData,"00%")
'70%
strData="ABCDE"
Debug.Print Format(strData,"<")
'abcde
strData="vwxyz"
Debug.Print Format(strData,">")
'VWXYZ
2.文件的读写操作
函数名 | 函数说明 |
FreeFile | 取得文件的编号 |
Open | 打开文件 |
Close | 关闭文件 |
| 写入文件 |
Line Input | 将文件读入到变量内 |
文件的读出
Sub ReadFile()
Dim strFileName As String
Dim intFileNo As Integer
Dim strData As String
strFileName = "C:\temp\samp.txt"
intFileNo = FreeFile
Open strFileName For Input As #intFileNo
Do While Not EOF(intFileNo)
Line Input #intFileNo, strData
Debug.Print strData
Loop
Close intFileNo
End Sub
文件的写入
Sub WriteFile()
Dim strFileName As String
Dim intFileNo As Integer
Dim strData As String
strFileName = "C:\temp\samp.txt"
intFileNo = FreeFile
Open strFileName For Output As #intFileNo
Print #intFileNo, "aaaaaaa"
Close intFileNo
End Sub
文件的追加
Sub AppendFile()
Dim strFileName As String
Dim intFileNo As Integer
Dim strData As String
strFileName = "C:\temp\samp.txt"
intFileNo = FreeFile
Open strFileName For Append As #intFileNo
Print #intFileNo, "aaaaaaa"
Close intFileNo
End Sub
3.文件、文件夹的操作
函数名 | 函数说明 |
Filecopy | 文件的复制 |
kill | 文件的删除 |
Dir | 从指定的路径返回文件或文件夹名 |
MkDir | 文件夹的作成 |
RmDir | 文件夹的删除 |
FileCopy "C:\TEMP\samp.txt", "C:\TEMP\bksamp.txt"
kill "C:\TEMP\samp.txt"
Dir "C:\temp\samp.txt"
Dir("C:\temp", vbDirectory)
MkDir C:\TEST
RmDir C:\TEST
4.其他
函数名 | 函数说明 |
Date | 返回系统的当前日期 |
Time | 返回系统的当前时刻 |
Now | 返回系统的当前日期和时刻 |
Year | 指定的日期中取出年份 |
Month | 指定的日期中取出月份 |
Day | 指定的日期中取出日 |
Hour | 指定的时刻中取出时刻 |
Minute | 指定的时刻中取出分钟 |
Second | 指定的时刻中取出秒 |
Weekday | 指定的日期中返回周的表现形式 |
WeekdayName | 指定的数字(1-7)中返回星期几的文字 |
Debug.Print Date
Debug.Print Hour(Time)
Debug.Print Weekday(Date)
Debug.Print WeekdayName(1)
Debug.Print WeekdayName(Weekday(Date))
函数名 | 函数说明 |
DateAdd | 返回指定日期相加后的日期 |
dtDate = Date
'返回三天后的日期
Debug.Print DateAdd("d", 3, dtDate)
'返回三个月后的日期
Debug.Print DateAdd("m", 3, dtDate)
'返回三年后的日期
Debug.Print DateAdd("yyyy", 3, dtDate)
'返回三周后的日期
Debug.Print DateAdd("w", 3, dtDate)
Debug.Print DateAdd("ww", 3, dtDate)
'返回九个月后的日期(三个季度)
Debug.Print DateAdd("q", 3, dtDate)
dtTime = Time
'返回三个小时后的时刻
Debug.Print DateAdd("h", 3, dtTime)
'返回三分后的时刻
Debug.Print DateAdd("n", 3, dtTime)
'返回三秒后的时刻
Debug.Print DateAdd("s", 3, dtTime)
dtNow = Now
'返回三天后的日期
Debug.Print DateAdd("d", 3, dtNow)
'返回三个月后的日期
Debug.Print DateAdd("m", 3, dtNow)
'返回第三周后的日期
Debug.Print DateAdd("w", 3, dtNow)
Debug.Print DateAdd("ww", 3, dtNow)
'返回三小时后的时刻
Debug.Print DateAdd("h", 3, dtNow)
'返回三分后的时刻
Debug.Print DateAdd("n", 3, dtNow)
'返回三秒后的时刻
Debug.Print DateAdd("s", 3, dtNow)
函数名 | 函数说明 |
DateDiff | 两个日期相减的日期 |
试一下,运行以下代码后的结果。
dtStDate = "2008/08/08"
dtEdDate = "2009/12/20"
Debug.Print DateDiff("d", dtStDate, dtEdDate)
Debug.Print DateDiff("m", dtStDate, dtEdDate)
Debug.Print DateDiff("yyyy", dtStDate, dtEdDate)
Debug.Print DateDiff("w", dtStDate, dtEdDate)
Debug.Print DateDiff("ww", dtStDate, dtEdDate)
Debug.Print DateDiff("q", dtStDate, dtEdDate)
Debug.Print DateDiff("h", dtStDate, dtEdDate)
Debug.Print DateDiff("n", dtStDate, dtEdDate)
Debug.Print DateDiff("s", dtStDate, dtEdDate)