文档库 最新最全的文档下载
当前位置:文档库 › VBA,字符串处理大全

VBA,字符串处理大全

VBA,字符串处理大全
VBA,字符串处理大全

1 VBA中的字符串

2 VBA中处理字符串的函数

2.1 比较字符串

2.2 转换字符串

2.3 创建字符串

2.4 获取字符串的长度

2.5 格式化字符串

2.6 查找字符串

2.7 提取字符/字符串

2.8 删除空格

2.9 返回字符代码

2.10 返回数值代表的相应字符

2.11 使用字节的函数

2.12 返回数组的函数

2.13 连接字符串

2.14 替换字符串

2.15 反向字符串

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

1 VBA中的字符串

VBA不仅可以处理数字,也可以处理文本(字符串)。VBA提供了两类字符串:

一类为固定长度的字符串,声明时包含指字的字符数。例如,下面的语句

Dim strFixedLong As String*100

声明字符串变量后,无论赋予该变量多少个字符,总是只包含100个字符,但字符串最长不超过65526个字符,且需要使用Trim函数去掉字符串中多余的空格。定长字符串只有在必要时才使用。

另一类为动态字符串。例如,声明字符串变量Dim strDynamic As String后,可以给该变量任意赋值,最多可包含20亿个字符。

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

2 VBA中处理字符串的函数

2.1 比较字符串

通常,在VBA中进行字符串比较时,会用到比较运算符(如=、>等)、Like运算符和StrComp 函数。此外,在模块的开头用Option Compare语句指定比较方式。

2.1.1 比较运算符

可以采用简单的逻辑运算符进行两个字符串的比较,即<(小于)、<=(小于或等于)、>(大于)、>=(大于或等于)、=(等于)、<>(不等于)。此外,还可以使用Like运算符进行比较。2.1.2 StrComp函数

StrComp函数返回字符串比较的结果。其语法为:

StrComp(string1,string2[,compare])

其中,参数string1和strng2为必需的参数,可以是任何有效的字符串表达式。

参数Compare为可选参数,如果该参数为Null,将发生错误。如果参数Compare设置为常数vbUseCompareOption或-1或忽略该参数,将使用Option Compare语句设置进行比较;如果忽略该参数且没有设置Option Compare语句,则按二进制进行比较;如果参数Compare 设置为常数vbBinaryCompare或0,则用二进制进行比较;如果参数Compare设置为常数vbTextCompare或1,则按文本进行比较;如果参数Compare设置为常数vbDatabaseCompare

或2,此时仅适用于Microsoft Access,进行基于数据库信息的比较。

StrComp函数的返回值为:如果String1String2,则返回值为1;如果String1或String2为Null,则返回值为Null。

看看下面的示例:

Sub testStringCompare()

Dim MyStr1 As String, MyStr2 As String, MyComp1, MyComp2, MyComp3, MyComp4 MyStr1 = "ABCD"

MyStr2 = "abcd"

MyComp1 = StrComp(MyStr1, MyStr2, 1) ' 返回0

MyComp2 = StrComp(MyStr1, MyStr2, 0) ' 返回-1

MyComp3 = StrComp(MyStr1, MyStr2) ' 返回-1

MyComp4 = StrComp(MyStr2, MyStr1) '返回1

MsgBox "StrComp(MyStr1, MyStr2, 1)的结果为:" & MyComp1

MsgBox "StrComp(MyStr1, MyStr2, 0)的结果为:" & MyComp2

MsgBox "StrComp(MyStr1, MyStr2)的结果为:" & MyComp3

MsgBox "StrComp(MyStr2, MyStr1)的结果为:" & MyComp4

End Sub

示例说明:如果StrComp函数的第三个参数值为1,则以文本比较的方式进行字符串比较;如果第三个参数值为0或忽略该参数,则以二进制比较的方式进行字符串比较。注意,文本比较的方式不区分字母大小写,而二进制比较方式则区分大小写。

[编程方法和技巧] 完成一次简单的单一比较,如

If UCase(sString1)

比使用StrComp函数:

If StrComp(sString1,sString2,vbTextCompare)=-1 Then

在性能上要提高30%,且更容易阅读和理解。

2.2 转换字符串

2.2.1 StrConv函数

使用StrConv函数来按指定类型转换字符串。其语法为:

StrConv(string,conversion,LCID)

其中,参数string为要转换的字符串,参数conversion为指定转换的类型,参数LCID为可选参数。

如果将参数conversion设置为vbUpperCase或1,则将字符串转换成大写;设置为vbLowerCase或2,则将字符串转换成小写;设置为vbProperCase或3,则将字符串中每个字的开头字母转换成大写;设置为vbUnicode或64,则根据系统的缺省码页将字符串转换成Unicode;设置为vbFromUnicode或128,则将字符串由Unicode转换成系统的缺省码页。在将ANSI格式的Byte数组转换成字符串时,应使用StrConv函数;转换Unicode格式的数组时,使用赋值语句。下面的例子使用StrConv函数将Unicode字符串转换成ANSI字符串:Sub testConverseString()

Dim i As Long

Dim x() As Byte

x = StrConv("ABCDEFG", vbFromUnicode) ' 转换字符串。

For i = 0 To UBound(x)

Debug.Print x(i)

Next

End Sub

下面的例子将句子中每个词语的首字母转换为大写:

Sub testConverseString2()

Debug.Print StrConv("my book is this book.", vbProperCase)

End Sub

程序运行后,在VBE窗口中的立即窗口中将会看到上述结果。

下面的示例演示了如何把一个字符串转换为字节数组,以便使用在API函数调用中:

Sub Test()

Dim byArray() As Byte

Dim sString As String

sString = "Some stuff"

byArray = StrConv(sString, vbFromUnicode)

End Sub

StrConv函数将下面的字符看成是字的分隔符:

Null:Chr$(0)

水平制表符:Chr$(9)

换行符:Chr$(10)

垂直制表符:Chr$(11)

换页符:Chr$(12)

回车符:Chr$(13)

空格:Chr$(32)

[编程方法和技巧] 在使用API时该函数很重要,很多程序调用都要求传递给它们Unicode 字符,或者赋给返回变量Unicode字符。

2.2.2 Str函数

将数值转换成字符串,即返回代表一个数值的字符串。其语法为:

Str(number)

当一个数字转成字符串时,总会在前面保留一个空位来表示正负,即字符串的第一位一定是空格或正负号。如果参数number为正,返回的字符串前面包含一空格。Str函数将句点(.)作为有效的小数点。示例如下:

MyString = Str(459) ' 返回" 459"

MyString = Str(-459.65) ' 返回"-459.65"

MyString = Str(459.001) ' 返回" 459.001"

[编程方法和技巧] 使用LTrim函数可删除Str函数在返回的字符串开头添加的前导空格。此外,CStr函数和Format函数已经取代了Str函数,CStr函数不用为正数的符号而添加前导空格,Format函数能够用来识别小数点。

2.2.3 CStr函数

CStr将数值表达式转换成String数据类型。示例如下:

MyDouble = 437.324 ' MyDouble 为Double 类型

MyString = CStr(MyDouble) ' MyString 的内容为"437.324"

[编程方法和技巧] 传递给CStr的未初始化的数字数据类型返回“0”,传递给CStr的未初始化的日期变量返回“0:00:00”。

2.3 创建字符串

2.3.1 Space函数

该函数返回指定数的空格的字符串。语法为:

Space(number)

其中,参数number必须,为字符串中指定的空格数。

如下例所示:

Sub CreateString1()

Dim MyString

' 返回10 个空格的字符串。

MyString = Space(10)

' 将10 个空格插入两个字符串中间。

MyString = "Hello" & Space(10) & "World"

End Sub

该函数可用于在调用外部DLL时建立字符串缓冲区,特别是在调用Window API时。此外,使用该函数还可以使字符串在特定长度的缓冲区左对齐或右对齐。

注意,如果参数number是负数,则会产生运行时错误5:“无效的过程调用或参数”。

[编程方法和技巧] 可以使用Space函数添加和清除存储在定长字符串中的数据,例如,下面的代码用空格填充一个定长字符串:

Dim strFixed As String * 32

……

strFixed = Space(Len(strFixed))

2.3.2 String函数

该函数返回重复的字符或字符串。其语法为:

String(number,character)

其中,参数number必须,指定所返回的字符串的长度;参数character必须,指定字符的字符代码或字符串表达式。

例如,下面使用String函数生成指定长度且只含单一字符的字符串。

Sub CreateString2()

Dim MyString

MyString = String(5, "*") ' 返回"*****"

MyString = String(5, 42) ' 返回"*****"

MyString = String(10, "ABC") ' 返回"AAAAAAAAAA"

End Sub

如果参数number包含Null,则返回Null;如果参数character包含Null,则返回Null;参数character可以指定为字符串或者是ANSI字符代码,如:

strString1=String(128,”=”) …用”=”填充

strString2=String(128,0) …用Chr$(0)填充

[编程方法和技巧]

(1) String函数在用于创建较长的“_”,“-”,或者“=”构成的水平线以便给报表分段时十分有用。

(2) 当调用API函数向缓冲区写入字符串值时,首先要用String函数创建一个长度合适的字符串变量,并且用诸如Chr$(0)之类的单个字符来填充。

2.4 获取字符串的长度

可以使用Len函数来确定任何字符串或字符串表达式的长度,其语法为:Len(string|varname)

其中,参数string为任何有效的字符串表达式;参数varname为任何有效的变量名称。两个

参数必须取一。

利用LenB函数可以确定存储某变量所需的实际字节数。

下面的示例使用Len函数来获取某字符串的长度(字符数)或某变量的大小(位数)。

Type CustomerRecord ' 定义用户自定义的数据类型

ID As Integer ' 将此定义放在常规模块中

Name As String * 10

Address As String * 30

End Type

Sub GetStrLen()

Dim Customer As CustomerRecord ' 声明变量

Dim MyInt As Integer, MyCur As Currency

Dim MyString, MyLen

MyString = "Hello World" ' 设置变量初值

MyLen = Len(MyInt) ' 返回2

MyLen = Len(Customer) ' 返回42

MyLen = Len(MyString) ' 返回11

MyLen = Len(MyCur) ' 返回8

End Sub

此外,在需要大量判断是否为空字符串的代码中,使用Len函数也可以加快代码执行的速度。例如:

If strTemp = "" Then

'要执行的代码

End If

上面的代码可以用以下代码代替:

If Len(strTemp) = 0 Then

'要执行的代码

End If

注意:

(1) 参数string和参数varname互不相容,即只能指定这两个参数中的某一个,不能同时指定这两个参数。

(2) 如果参数string或参数varname中包含Null,则Len函数会返回Null。

(3) 在向文件写入某种用户自定义类型数据时,Len函数会返回数据的大小(字符数)。

(4) LenB函数返回用户自定义类型数据实际占用的内存大小。

(5) 在对字节数据或Unicode字符串使用LenB函数时,LenB函数返回表示数据或字符串的字节数。

(6) 不能对对象变量使用Len函数。

(7) 如果参数varname是一个数组,则必须指定一个有效的下标,即Len函数不能确定数组中元素的总数或数组占用内存的大小。

(8) Len函数对Variant类型变量的处理和字符串变量一样,Len函数返回变量所存储的实际字符数,如下面的代码:

Dim vVar

vVar=100

MsgBox Len(vVar)

结果为3。

(9) 由于VB本质上使用的是Unicode字符串(用两个字节的空间来存储一个字符),因此当相同的字符串变量传递给Len函数和LenB函数时会出现不同的返回值。例如,对于一个包含4个字符的字符串,使用Len函数时返回值为4,使用LenB函数则为8。

(10) 使用强类型变量(即强制声明该变量的类型)时,Len函数会返回存储该变量所需的字节数。例如,长整型变量的长度为4。

下面的示例说明了为什么要显式声明数据类型:

Sub test()

Dim lVar As Long

Dim vVar

lVar = 10000000

vVar = 10000000

MsgBox LenB(lVar) '返回4

MsgBox LenB(vVar)'返回16

End Sub

很显然,Variant类型变量比强制声明的类型变量要占用更多的内存。

2.5 格式化字符串

可以使用Format函数规定输出的字符串的格式,其语法为:

Format(expression[,format[,firstdayofweek[,firstweekofyear]]])

其中,参数expression必须,为任何有效的表达式;其余参数均可选。参数format表示所要采用的格式,参数firstdayofweek使用常数,表示一星期的第一天,参数firstweekofyear使用常数,表示一年的第一周。

在参数format中,使用字符“@”,表示空格或字符占位符,如果在输入的字符串相应位置有字符,则显示该字符,否则显示空格;使用字符“&”,表示空或字符占位符,如果在输入的字符串的相应位置有字符,则显示该字符,否则不显示;使用字符“<”,则将所有字符显示为小写格式;使用字符“>”,则将所有字符显示为大写格式;使用字符“!”,强制占位符从左向右填满,满足默认为从右向左。

例如下面的代码:

Dim strOut

strOut = Format("8888888", "(@@@)&&&-&&&&") '返回( )888-8888

strOut = Format("8888888", "(&&&)&&&-&&&&") '返回()888-8888

在Format函数中,还可以同时格式化普通字符串和空字符串,只须在指定的格式中用分号隔开两个部分,第一部分用于非空字符串,第二部分用于空字符串。例如:

strOut = Format("6666666", "(@@@)&&&-&&&&;No Phone") '返回( )666-6666

strOut = Format("", "(@@@)&&&-&&&&;No Phone") '返回No Phone

又如,下面的代码将字母全部转换为大写:

Dim strOut

strOut = Format("Hello", ">@@@@@") …返回HELLO

同理,可以使用“<”将字母全部转换为小写。

Format函数的简要使用规则:

(1) 允许用预先定义或用户定义的格式来建立多种用于输出字符串、数字和日期/时间数据的方法。

(2) 创建用户定义的数值格式最多可以有四个部分,每个部分代表一种不同类型的数值,且用分号分隔。第一部分在单独命名使用时可用于所有值,与其它多个部分一起使用时只用于

正数;第二部分用于负数;第三部分用于零值;第四部分用于Null值。

在参数format中不必包括所有四部分,但所用部分的数目决定了每一个部分所定义的数值类型:只有一个部分,则应用于所有数值;有两个部分,则第一部分应用于正数和零值,第二部分应用于负数;有三个部分,则第一部分用于正数,第二部分应用于负数,第三部分应用于零值;有四个部分,则每部分的使用如前所述。

如果忽略了一个部分,则该部分使用与定义正数的部分一样的格式,例如:

“#.00;;#,##”

表示负数值与正数值使用同一种格式显示。

如果参数含有命名格式,则只能有一个部分。

(3) 字符串值的用户定义格式有两个部分,第一部分可应用于所有值,第二部分只应用于Null值或零长字符串。

(4) 预定义的日期和时间格式如下:

General Date

范例:Format("28/02/2007","General Date")

返回:2007-2-28

Long Date

范例:Format("28/02/2007","Long Date")

返回:2007年2月28日

Medium Date

范例:Format("28/02/2007","Medium Date")

返回:07-02-28

Short Date

范例:Format("28/02/2007","Short Date")

返回:2007-2-28

Long Time

范例:Format("17:30:03","Long Time")

返回:17:30:03

Medium Time

范例:Format("17:30:03","Medium Time")

返回:下午05:30

Short Time

范例:Format("17:30:03","Short Time")

返回:17:30

(5) 预定义的数值格式如下:

General Number

范例:Format(123456.0789,"General Number")

返回:123456.0789

Currency

范例:Format(123456.0789,"Currency")

返回:¥123,456.08

Fixed

范例:Format(0.2,"Fixed")

返回:0.20

Standard

范例:Format(123456.0789,"Standard")

返回:123,456.08

Percent

范例:Format(.7321,"Percent")

返回:73.21%

Scientific

范例:Format(123456.0789,"Scientific")

返回:1.23E+05

Yes/No

范例1:Format(0,"Yes/No")

返回:No

范例2:Format(23,"Yes/No")

返回:Yes

True/False

范例1:Format(0,"True/False")

返回:False

范例2:Format(23,"True/False")

返回:True

On/Off

范例1:Format(0,"On/Off")

返回:Off

范例2:Format(23,"On/Off")

返回:On

(6) 创建用户自定义的日期和时间格式的字符:

C

元素:日期

显示:基于当前Windows系统的短日期和短时间国际设置格式的日期或时间。范例:Format("28/02/2007 17:30:03","c")

返回:2007-2-28 17:30:03

dddddd

元素:日期

显示:基于当前Windows系统的长日期国际设置格式的完整日期。

范例:Format("28/02/2007","dddddd")

返回:2007年2月28日

/

元素:日期分隔符

范例:Format("28/02/2007","mm-dd-yyyy")

返回:02-28-2007

d

元素:日

显示:1~31范围内的一个数字,无前导0。

范例:Format("02/02/2007","d")

返回:2

dd

元素:日

显示:01~31范围内的一个数字,有前导0。

范例:Format("02/02/2007","dd")

返回:02

ddd

元素:日

显示:英文简写(Sun~Sat)

范例:Format("02/02/2007","ddd")

返回:Fri

dddd

元素:日

显示:英文全称(Sunday~Saturday)

范例:Format("02/02/2007","dddd")

返回:Friday

ddddd

元素:日期

显示:基于计算机Windows国际设置短日期格式的日期。范例:Format("02/02/2007","ddddd")

返回:2007-2-2

h

元素:小时

显示:0~23范围内的一个数字,无前导0。

范例:Format("05:08:06","h")

返回:5

hh

元素:小时

显示:00~23范围内的一个数字,有前导0。

范例:Format("05:08:06","hh")

返回:05

n

元素:分

显示:0~59范围内的一个数字,无前导0。

范例:Format("05:08:06","n")

返回:8

nn

元素:分

显示:00~59范围内的一个数字,有前导0。

范例:Format("05:08:06","nn")

返回:08

s

元素:秒

显示:0~59范围内的一个数字,无前导0。

范例:Format("05:08:06","s")

返回:6

ss

元素:秒

显示:00~59范围内的一个数字,有前导0。

范例:Format("05:08:06","ss")

返回:06

ttttt

元素:时间

显示:基于12小时制的时间,包含Windows区域设置中指定的时间分隔符和前导0。范例:Format("05:08:06","ttttt")

返回:5:08:06

AM/PM

元素:时间

显示:用大写的AM和PM表示的12小时制的时钟格式。

范例:Format("17:08:06","hh:mm:ss AM/PM")

返回:05:08:06 PM

am/pm

元素:时间

显示:用小写的am和pm表示的12小时制时钟格式。

范例:Format("17:08:06","hh:mm:ss am/pm")

返回:05:08:06 pm

A/P

元素:时间

显示:12小时制时钟格式,用大写“A”表示AM,大写“P”表示PM。

范例:Format("17:08:06","hh:mm:ss A/P")

返回:05:08:06 P

a/p

元素:时间

显示:12小时制时钟格式,用小写“a”表示am,小写“p”表示pm。

范例:Format("17:08:06","hh:mm:ss a/p")

返回:05:08:06 p

元素:时间分隔符

显示:时间格式

范例:Format("17:08:06","hh:mm:ss")

返回:17:08:06

w

元素:星期几

显示:1~7范围内的一个数字(1~7分别表示星期天到星期六)。

范例:Format("02/02/2007","w")

返回:6

ww

元素:周

显示:1~54范围内的一个数字。

范例:Format("02/02/2007","ww")

返回:5

m

元素:月

显示:1~12范围内的一个数字,无前导0。

范例:Format("02/02/2007","m")

返回:2

mm

元素:月

显示:01~12范围内的一个数字,有前导0。

范例:Format("02/02/2007","mm")

返回:02

mmm

元素:月

显示:英文月份简写(Jan~Dec)

范例:Format("02/02/2007","mmm")

返回:Feb

mmmm

元素:月

显示:英文月份全称(January~December)

范例:Format("02/02/2007","mmmm")

返回:February

q

元素:季度

显示:1~4范围内的一个数字

范例:Format("02/02/2007","q")

返回:1

y

元素:一年中的某天

显示:1~366范围内的一个数字。

范例:Format("02/02/2007","y")

返回:33

yy

元素:年

显示:00~99范围内的一个两位数字。

范例:Format("02/02/2007","yy")

返回:07

yyyy

元素:年

显示:100~9999范围内的一个四位数字。

范例:Format("02/02/2007","yyyy")

返回:2007

(7)用于创建用户自定义数字格式的字符

说明:数字占位符。如果参数expression所代表的数值在相应的0位置上有一个数字,则显

示这个数字,否则显示0。所指定的小数点后的位数,使数值舍入为给定的小数位数,但不影响小数点左边的数字位数。

范例1:Format(23.675,"00.0000") 返回:23.6750

范例2:Format(23.675,"00.00") 返回:23.68

范例3:Format(2345,"00000") 返回:02345

范例4:Format(2345,"00.00") 返回:2345.00

#

说明:数字占位符。如果参数expression所代表的数值在相应的#位置上有一个数字,则显示这个数字,否则什么也不显示。

范例1:Format(23.675,"##.##") 返回:23.68

范例2:Format(23.675,"##.####") 返回:23.675

范例3:Format(12345.25,"#,###.##") 返回:12,345.25

.

说明:小数点占位符。小数点占位符实际显示的字符由本机Windows系统国际设置格式决定。

%

说明:百分数占位符。首先将参数expression所代表的数值乘以100,然后把它作为百分数显示。

范例:Format(0.25,"##.00%") 返回:25.00%

说明:千位分隔符。实际显示的字符由本机Windows系统国际设置格式决定。在格式定义中只需要给出一个千位分隔符。

范例:Format(1000000,"#,###") 返回:1,000,000

E-E+ e-e+

说明:科学计数法格式。如果格式表达式在E-、E+或e-、e+的右边至少有一个数字占位符(0或#),数字就以科学计数法格式显示数字,参数Format中所用的字母E或e在该数字和它的指数之间显示。右边的数字占位符数目决定了要在指数中显示的位数。使用E-或e-可以在负指数前插入一个减号,使用E+或e+可以在正指数前插入一个正号。

范例:Format(1.09837555,"######E-###") 返回:109838E-5

-+$

说明:显示一个直接量字符。

范例:Format(2345.25,"$#,###.##") 返回:$2,345.25

\

说明:反斜杠后的字符以直接量字符显示。可以用反斜杠将某个特定格式的字符以直接量字符显示。

范例:Format(0.25,"##.##\%") 返回:.25%

(8) 用于创建用户自定义字符串格式的字符

@

说明:字符占位符。如果expression在相应的@位置上有一个字符,就显示这个字符,否则显示一个空格。

范例:Format("VBA","\*@\*@@@@@") 返回:* * VBA

&

说明:字符占位符。如果expression在相应的&位置上有一个字符,就显示这个字符,否则什么也不显示。

范例:Format("VBA","\*&&\*&&&&") 返回:**VBA

<

说明:用小写形式显示所有字符。

范例:Format("VBA","<") 返回:vba

>

说明:用大写形式显示所有字符。

范例:Format("vba",">") 返回:VBA

说明:从左向右处理占位符(缺省情况为从右向左处理占位符)。

[编程方法和技巧]

(1) 使用没有格式定义的Format函数格式化数字比使用Str函数格式化数字更好。Format 函数与Str函数不同,它会把正数中一般保留用于表示符号的前导空格清除掉。

(2) 可以使用Format函数以1000为单位对数字进行标度,做法是在语句中小数点的左边用一个千位分隔符(,)表示标度数字的一个千位;可以使用多个千位分隔符。例如:Format(1000000,"##0,.") 返回:1000.

Format(1000000,"##0,,.") 返回:1.

2.6 查找字符串

2.6.1 InStr函数

可使用InStr函数返回一字符串在另一字符串中的位置,因此,也可以使用该函数确定一个字符串中是否包含有另一个字符串。其语法为:

InStr([Start,]string1,string2[,compare])

其中,参数Start为可选参数,设置查找的起点,如果省略,则从第一个字符的位置开始查找,当指定了参数Compare时,则要指定此参数。参数string1为被查找的字符串,参数string2为要查找的字符串,这两个参数都是必需的。

如果在String1中没有找到String2,返回0;如果找到String2,则返回String2第一个出现的首字符位置(即1到String1的长度);如果String2的长度为零,返回Start。

可看看下面的示例:

Sub test()

Dim SearchString, SearchChar, MyPos

SearchString = "XXpXXpXXPXXP" '被搜索的字符串

SearchChar = "P" '要查找字符串"P"

'从第四个字符开始,以文本比较的方式找起,返回值为6(小写p)

'小写p 和大写P 在文本比较下是一样的

MyPos = InStr(4, SearchString, SearchChar, 1)

Debug.Print MyPos

'从第一个字符开使,以二进制比较的方式找起,返回值为9(大写P)

'小写p 和大写P 在二进制比较下是不一样的

MyPos = InStr(1, SearchString, SearchChar, 0)

Debug.Print MyPos

'缺省的比对方式为二进制比较(最后一个参数可省略)

MyPos = InStr(SearchString, SearchChar) '返回9

Debug.Print MyPos

MyPos = InStr(1, SearchString, "W") '返回0

Debug.Print MyPos

End Sub

2.6.2 InStrRev函数

也可以使用InStrRev函数返回一个字符串在另一个字符串中出现的位置,与InStr函数不同的是,从字符串的末尾算起。其语法为:

InStrRev(String1,String2[,[Start[,compare])

参数String1为被查找的字符串,参数String2为要查找的字符串,这两个参数都是必需的。参数Start为可选参数,设置每次查找开始的位置,若忽略则使用-1,表示从上一个字符位置开始查找。参数Compare为可选参数,表示所使用的比较方法,如果忽略则执行二进制比较。

下面的示例使用了InStr函数和InStrRev函数,相应的结果不同:

Sub test()

Dim myString As String

Dim sSearch As String

myString = "I like the functionality that InsStrRev gives"

sSearch = "th"

Debug.Print InStr(myString, sSearch) '返回8

Debug.Print InStrRev(myString, sSearch) '返回26

End Sub

- - - - - - - - - - - - - - - - - - - - - - -

2.7 提取字符/字符串

2.7.1 Left函数

Left函数可以从字符串的左边开始提取字符或指定长度的字符串,即返回包含字符串中从左边算起指定数量的字符。其语法为:

Left(String,CharNum)

其中,如果参数String包含Null,则返回Null;如果参数CharNum的值大于或等于String 的字符数,则返回整个字符串。

例如,下面的代码返回指定字符串的前两个字符:

strLeft=Left(“This is a pig.”,2)

Left函数与InStr函数结合,返回指定字符串的第一个词,例如下面的代码:

str = "This is a pig."

FirstWord = Left(str, InStr(str, " ") - 1)

2.7.2 Right函数

与Left函数不同的是,Right函数从字符串的右边开始提取字符或指定长度的字符串,即返回包含字符串中从右边起指定数量的字符。其语法为:

Right(String,CharNum)

例如:

AnyString = "Hello World" ' 定义字符串

MyStr = Right(AnyString, 1) ' 返回"d"

MyStr = Right(AnyString, 6) ' 返回" World"

MyStr = Right(AnyString, 20) ' 返回"Hello World"

如果存放文件名的字符串中没有反斜杠(\),下面的代码将反斜杠(\)添加到该字符串中:

If Right(strFileName,1) <> “” Then

strFileName=strFileName & “\”

End If

下面的函数假设传递给它的参数或者是文件名,或者是包含完整路径的文件名,从字符串的末尾开始返回文件名。

Private Function ParseFileName(strFullPath As String)

Dim lngPos As Long, lngStart As Long

Dim strFilename As String

lngStart = 1

Do

lngPos = InStr(lngStart, strFullPath, "\")

If lngPos = 0 Then

strFilename = Right(strFullPath, Len(strFullPath) - lngStart + 1)

Else

lngStart = lngPos + 1

End If

Loop While lngPos > 0

ParseFileName = strFilename

End Function

2.7.3 Mid函数

Mid函数可以从字符串中提取任何指定的子字符串,返回包含字符串中指定数量的字符的字符串。其语法为:

Mid(String,Start[,Len])

其中,如果参数String包含Null,则返回Null;如果参数Start超过了String的字符数,则返回零长度字符串(“”);如果参数Len省略或超过了文本的字符数,则返回字符串从Start 到最后的所有字符。

例如,下面的代码:

Str=Mid(“This is a pig.”,6,2)

将返回文本“is”。

下面的代码:

MyString = "Mid Function Demo" '建立一个字符串

FirstWord = Mid(MyString, 1, 3) '返回"Mid"

LastWord = Mid(MyString, 14, 4) '返回"Demo"

MidWords = Mid(MyString, 5) '返回"Funcion Demo"

Mid函数常用于在字符串中循环,例如,下面的代码将逐个输出字符:

Dim str As String

Dim i As Integer

Str=”Print Out each Character”

For i=1 to Len(str)

Debug.Print Mid(str,i,1)

Next i

2.7.4 Mid语句

Mid语句可以用另一个字符串中的字符替换某字符串中指定数量的字符。其语法为:Mid(Stringvar,Start[,Len])=string

其中,参数Stringvar代表为要被更改的字符串;参数Start表示被替换的字符开头位置;参数Len表示被替换的字符数,若省略则全部使用string;参数string表示进行替换的字符串。被替换的字符数量总小于或等于Stringvar的字符数;如果string的数量大于Len所指定的数

量,则只取string的部分字符。示例如下:

MyString = "The dog jumps" ' 设置字符串初值

Mid(MyString, 5, 3) = "fox" ' MyString = "The fox jumps"

Mid(MyString, 5) = "cow" ' MyString = "The cow jumps"

Mid(MyString, 5) = "cow jumped over" ' MyString = "The cow jumpe"

Mid(MyString, 5, 3) = "duck" ' MyString = "The duc jumpe"

- - - - - - - - - - - - - - - - - - - - - - -

2.8 删除空格

LTrim函数删除字符串前面的空格;

RTrim函数删除字符串后面的空格;

Trim函数删除两头的空格。

示例如下:

MyString = " <-Trim-> " ' 设置字符串初值

TrimString = LTrim(MyString) ' TrimString = "<-Trim-> "

TrimString = RTrim(MyString) ' TrimString = " <-Trim->"

TrimString = LTrim(RTrim(MyString)) ' TrimString = "<-Trim->"

' 只使用Trim 函数也同样将两头空格去除

TrimString = Trim(MyString) ' TrimString = "<-Trim->"

- - - - - - - - - - - - - - - - - - - - - - -

2.9 返回字符代码

Asc函数返回指定字符串表达式中第一个字符的字符代码。示例如下:

MyNumber = Asc("A") ' 返回65

MyNumber = Asc("a") ' 返回97

MyNumber = Asc("Apple") ' 返回65

[编程方法和技巧]

(1) 在数据验证中用Asc来决定一些条件,如第一个字符是大写还是小写、是字母还是数字。Private Sub CommandButton1_Click()

Dim sTest As String

Dim iChar As Integer

sTest = TextBox1.Text

If Len(sTest) > 0 Then

iChar = Asc(sTest)

If iChar >= 65 And iChar <= 90 Then

MsgBox "第一个字符是大写"

ElseIf iChar >= 97 And iChar <= 122 Then

MsgBox "第一个字符是小写"

Else

MsgBox "第一个字符不是字母"

End If

Else

MsgBox "请在文本框中输入"

End If

End Sub

(2) 用Asc函数和Chr函数来创建基本加密的方法。

Private Sub CommandButton2_Click()

Dim MyName As String, MyEncryptedString As String

Dim MyDecryptedString As String

Dim i As Integer

MyName = "fanjy"

For i = 1 To Len(MyName)

MyEncryptedString = MyEncryptedString & Chr(Asc(Mid(MyName, i, 1)) + 25)

Next i

MsgBox "您好!我的名字是" & MyEncryptedString

For i = 1 To Len(MyName)

MyDecryptedString = MyDecryptedString & Chr(Asc(Mid(MyEncryptedString, i, 1)) - 25) Next i

MsgBox "您好!我的名字是" & MyDecryptedString

End Sub

- - - - - - - - - - - - - - - - - - - - - - -

2.10 返回数值代表的相应字符

Chr函数返回指定字符码所代表的字符,其语法为:

Chr(charcode)

其中参数charcode代表字符码,一般为0~255。例如:

MyChar = Chr(65) ' 返回A

MyChar = Chr(97) ' 返回a

MyChar = Chr(62) ' 返回>

MyChar = Chr(37) ' 返回%

[编程方法和技巧]

(1) 使用Chr(34)将引号嵌入字符串,如

Chr(34) & sString & Chr(34)

(2) 下面列出了在调用Chr函数时比较常用的字符代码:

代码值描述

0 Null 相当于vbNullChar常数

8 BS 相当于vbBack常数

9 TAB 相当于vbTab常数

10 CR 相当于vbCr和vbCrLf常数

13 LF 相当于vbLf和vbCrLf常数

34 “”引号

- - - - - - - - - - - - - - - - - - - - - - -

2.11 使用字节的函数

VBA中返回字符串的函数有两种格式,一种以$结尾,返回字符串,不需要进行类型转换,所以速度较快,但如果输入值是包含Null的Viarant,则会发生运行错误;一种没有$,返回Viarant数据类型,如果输入值是包含Null的Viarant,则返回Null。因而,如果要使得程序运行速度快,则使用带有$的函数且要避免向这些函数传递空值。

- - - - - - - - - - - - - - - - - - - - - - -

2.12 返回数组的函数

2.12.1 Filter函数

Filter函数返回一个下标从零开始的数组,该数组包含基于指定筛选条件的一个字符串数组

的子集。其语法为:

Filter(sourcearray,match[,include[,compare]])

其中,参数sourcearray必需,是要执行搜索的一维字符串数组;参数match必需,是要搜索的字符串;参数include可选,Boolean值,表示返回子串包含还是不包含match字符串,如果include为True,返回包含match子字符串的数组子集,如果include为False,返回不包含match子字符串的数组子集;参数compare可选,表示所使用的字符串比较类型,其设置值为:-1(常数为vbUseCompareOption)表示使用Option Compare语句的设置值来执行比较;0(常数为vbBinaryCompare)表示执行二进制比较;1(常数为vbTextCompare)表示执行文字比较;2(常数为vbDatabaseCompare)只用于Microsoft Access,表示基于数据库信息来执行比较。

如果在sourcearray中没有发现与match相匹配的值,Filter函数返回一个空数组;如果sourcearray是Null或不是一个一维数组,则产生错误。

Filter函数所返回的数组,其元素数是所找到的匹配项目数。

[编程方法和技巧]

(1) Filter函数也可以过滤数字值。此时,应指定Variant类型的字符串sourcearray,并用数字值给数组赋值。同时,也可以将字符串、V ariant、Long或Integer数据传递给match。但应注意,返回的字符串表现为被过滤数字的字符串的形式。例如:

Sub test()

Dim varSource As Variant, varResult As Variant

Dim strMatch As String, i

strMatch = CStr(2)

varSource = Array(10, 20, 30, 21, 22, 32)

varResult = Filter(varSource, strMatch, True, vbBinaryCompare)

For Each i In varResult

Debug.Print i

Next

End Sub

将返回20,21,22,32

(2) Filter函数可以和Dictionary对象很好地配合使用。可以把Dictionary对象产生的Key值作为一种过滤Dictionary对象成员的快速方法传递给Filter函数,如:

Sub test()

Dim i As Integer

Dim sKeys() As Variant

Dim sFiltered() As String

Dim sMatch As String

Dim blnSwitch As Boolean

Dim oDict As Dictionary

Set oDict = New Dictionary

oDict.Add "Microsoft", "One Microsoft Way"

oDict.Add "AnyMicro Inc", "31 Harbour Drive"

oDict.Add "Landbor Data", "The Plaza"

oDict.Add "Micron Co.", "999 Pleasant View"

sKeys = oDict.Keys

sMatch = "micro"

blnSwitch = True

'寻找包含字符串macro(不区分大小写)的所有键

sFiltered() = Filter(sKeys, sMatch, blnSwitch, vbTextCompare)

For i = 1 To UBound(sFiltered)

Debug.Print sFiltered(i) & "," & oDict.Item(sFiltered(i))

Next i

End Sub

2.12.2 Split函数

Split函数返回一个下标从零开始的一维数组,包含指定数目的子字符串。其语法为:Split(expression[,delimiter[,limit[,compare]]])

其中,参数expression必需,表示包含子字符串和分隔符的字符串,若expression是一个长度为零的字符串(“”),该函数则返回一个没有元素和数据的空数组;参数delimiter用于标识子字符串边界的字符串字符,若忽略则使用空格(“ “)作为分隔符,若是一个长度为零的字符串则返回仅包含一个元素的数组,该元素是expression所表示的字符串;参数limit表示要返回的子字符串数,-1表示返回所有的子字符串;参数compare表示判别子字符串时使用的比较方式,其值与Filter函数的设置值相同。

- - - - - - - - - - - - - - - - - - - - - - -

2.13 连接字符串

Join函数返回连接某数组中的多个子字符串而组成的字符串,即将数组中的字符串连接起来。其语法为:

Join(sourcearray[,delimiter])

其中,参数sourcearray必需,是包含被连接子字符串的一维数组;参数delimiter可选,代表在所返回的字符串中用于分隔子字符串的字符,若忽略则使用空(“ ”)来分隔,若为零长字符串(“”),则所有项目都连接在一起,中间没有分隔符。

- - - - - - - - - - - - - - - - - - - - - - -

2.14 替换字符串

Replace函数返回一个被替换了的字符串,该字符串中指定的子字符串已被替换成另一个子字符串,并且替换指定次数。其语法为:

Replace(expression,find,replace[,start[,count[,compare]]])

其中,参数expression必需,表示所要替换的子字符串;参数find必需,表示要搜索到的子字符串;参数replace必需,表示用来替换的子字符串;参数start表示开始搜索的位置,若忽略,则从1开始;参数count表示进行替换的次数,缺省值是-1,表示进行所有可能的替换;参数compare表示判别子字符串时所用的比较方式,与Filter函数的设置值相同。

如果expression的长度为零,Replace返回零长度字符串(“”);如果expression为Null,则返回错误;如果find的长度为零,则返回expression的副本;如果replace的长度为零,则返回删除了所有出现find的字符串的副本;如果start的值大于expression的长度,则返回长度为零的字符串;如果count为0,则返回expression的副本。

Replace函数返回的字符串是从参数start所指定的位置开始到expression结尾已经进行过替换的字符串。

注意:

(1) 如果没有使用参数count,那么当替换较短字符串时就要注意,防止形成一个不相关的字符。

(2) 如果start值大于1,返回的字符串将从start开始,而不是从原有字符串的第一个字符开始。

- - - - - - - - - - - - - - - - - - - - - - -

2.15 反向字符串

StrReverse函数返回与指定字符串顺序相反的字符串,其语法为:

StrReverse(expression)

其中,参数expression是一个字符串,应用StrReverse函数后将返回与该字符串顺序相反的字符串。如果expression是一个长度为零的字符串(“”),则返回一个长度为零的字符串;如果expression为Null,则产生一个错误。

使用字符串函数

不同的类中都定义有字符串函数。这些类包括Microsoft.VisualBasic.Strings类和System.String类。

使用Microsoft.VisualBasic.Strings 类中的字符串函数

下列函数是Microsoft.VisualBasic.Strings类中定义的字符串函数。

注意:要使用字符串函数,请通过在源代码开始处添加以下代码将命名空间Microsoft.VisualBasic.Strings 导入到项目中:

Imports Microsoft.VisualBasic.Strings

Asc和AscW

Asc函数和AscW函数返回一个整数值,表示与指定的字符相对应的字符代码。这两个函数接受任何有效的字符表达式或字符串表达式作为参数。当字符串是输入参数时,则仅输入字符串的第一个字符。当字符串不包含任何字符时,将出现ArgumentException 错误。Asc 返回输入字符的代码数据点或字符代码。对于单字节字符集(SBCS) 值,返回值可以是0 到255 之间的数字。对于双字节字符集(DBCS) 值,返回值可以是-32768 到32767 之间的数字。AscW为输入字符返回0 到65535 之间的Unicode 代码数据点。

示例:

Dim MyInt As Integer

MyInt = Asc("A") ' MyInt is set to 65.

MyInt = Asc("a") ' MyInt is set to 97.

MyInt = Asc("Apple") ' MyInt is set to 65.

Chr和ChrW

Chr函数和ChrW函数返回与指定的字符代码相关联的字符。当CharCode 超出-32768 到65535 的范围时,将出现ArgumentException 错误。

示例:

本示例使用Chr函数返回与指定的字符代码相关联的字符。

Dim MyChar As Char

VB常用字符串操作函数解读

VB常用字符串操作函数2009/11/25 18:321. ASC(X,Chr(X:转换字符字符码[格式]: P=Asc(X 返回字符串X的第一个字符的字符码 P=Chr(X 返回字符码等于X的字符 [范例]:(1P=Chr(65 ‘ 输出字符A,因为A的ASCII码等于65 (2P=Asc(“A” ‘ 输出65 2. Len(X:计算字符串X的长度 [格式]: P=Len(X [说明]:空字符串长度为0,空格符也算一个字符,一个中文字虽然占用2 Bytes,但也算 一个字符。 [范例]: (1 令X=”” (空字符串 Len(X 输出结果为0 (2 令X=”abcd” Len(X 输出结果为4 (3 令X=”VB教程” Len(X 输出结果为4 3. Mid(X函数:读取字符串X中间的字符 [格式]: P=Mid(X,n 由X的第n个字符读起,读取后面的所有字符。 P=Mid(X,n,m 由X的第n个字符读起,读取后面的m个字符。 [范例]: (1 X=”abcdefg” P=Mid(X,5 结果为:P=”efg” (2 X=”abcdefg” P=Mid(X,2,4 结果为 P=”bcde” 4. R eplace: 将字符串中的某些特定字符串替换为其他字符串 [格式]: P=Replace(X,S,R [说明]:将字符串X中的字符串S替换为字符串R,然后返回。[范例]:X=”VB is very good” P=Replace(X,good,nice 输出结果为:P=”VB is very nice” 5. StrReverse:反转字符串 [格式]: P=StrReverse(X [说明]:返回X参数反转后的字符串 [范例]:(1)X=”abc” P=StrReverse(X 输出结果:P=”cba” 6. Ucase(X,Lcase(X:转换英文字母的大小写 [格式]:P=Lcase(X ‘ 将X字符串中的大写字母转换成小写P=Ucase(X ‘ 将X字符串中的小写字母转换成大写 [说明]:除了英文字母外,其他字符或中文字都不会受到影响。 [范例]:(1)令X=”VB and VC” 则Lcase(X的结果为”vb and vc”,Ucase(X的结果为”VB AND VC” 7. InStr函数:寻找字符串 [格式]: P=InStr(X,Y 从X第一个字符起找出Y出现的位置 P=InStr(n,X,Y 从X第n个字符起找出Y出现的位置 [说明]:(1)若在X中找到Y,则返回值是Y第一个字符出现在X中的位置。(2) InStr(X,Y相当于 InStr(1,X,Y。(3)若字符串长度,或X为空字符串,或在X中找不到Y,则都 返回0。(4)若Y为空字符串,则返回0。 ---------------------------------------------------------------------------------------------- mid(字符串,从第几个开始,长度 ByRef 在[字符串]中[从第几个开始]取出[长度个字符串] 例如 mid("小欣无敌",1,3 则返回 "小欣无" instr(从第几个开始,字符串1,字符串2 ByVal 从规定的位置开始查找,返回字符

VBA常用代码大全

.、八、- 刖言 我们平时在工作表单元格的公式中常常使用函数,EGcel自带的常用的函数多达300多个, 功能强大,丰富多彩,但是在 VBA中不能直接应用,必须在函数名前面加上对象,比如:Applicatio n. WorksheetF un ctio n.Sum(arg1,arg2,arg3) 。 而能在VBA中直接应用的函数也有几十个,下面将逐一详细介绍常用的40个VBA函数, 以供大家学习参考。 第1.1例ASC函数 一、题目: 要求编写一段代码,运行后得到字符串”EGcel”的首字母和” e”的ASCII值。 二、代码: Sub 示例_1_01() DimmyNum1%,myNum2% myNum仁Asc("EGcel")'返回 69 myNum2=Asc("e")' 返回 101 [a1]="myNum 1=":[b1]=myNum1 [a2]="myNum2=":[b2]=myNum2 En dSub 三、代码详解 1、Sub示例_1_01():宏程序的开始语句。 2、DimmyNum1%,myNum2% :变量 myNum1 和 myNum2 声明为整型变量。 也可以写为DimmyNum1AsInteger 。Integer变量存储为16位(2个字节)的数值形式,

其范围为-32,768到32,767之间。Integer的类型声明字符是百分比符号(%)。 3、myNum1=Asc("EGcel"):把 Asc 函数的值赋给变量 myNum1 。 Asc函数返回一个Integer,代表字符串中首字母的字符的 ASCII代码。 语法 Asc(stri ng) 必要的string (字符串)参数可以是任何有效的字符串表达式。如果string中没有包含任何字符,则会产生运行时错误。 4、myNum2=Asc("e"):把Asc函数的值赋给变量myNum2。这里返回小写字母e的ASCII 代码101。 5、 [a1]="myNum仁":[b1]=myNum1 :把字符串“ myNum仁“赋给A1单元格,把变量myNum1的值赋给B1单元格。 6、 [a2]="myNum2=":[b2]=myNum2 :把字符串“ myNum2= “赋给 A2 单元格,把变量myNum2的值赋给B2单元格。 7、 EndSub :程序的结束语句,和“ Sub示例_1_01 ()”相对应。 第1.2例Chr函数 一、题目"": 要求编写一段代码,运用 Chr函数将ASCII值转换为对应的字符 二、代码: Sub 示例_1_02() DimmyChar1$,myChar2$ myChar仁Chr(69)'返回 E。 myChar2=Chr(101)' 返回 e。 [a1]="myChar1=":[b1]=myChar1 [a2]="myChar2=":[b2]=myChar2

C字符串处理函数全

strcpy(char destination[], const char source[]); strcpy:将字符串source拷贝到字符串destination中。 strcpy函数应用举例 原型:strcpy(char destination[], const char source[]); 功能:将字符串source拷贝到字符串destination中 例程: #include #include void main(void) { char str1[10] = { "TsinghuaOK"}; char str2[10] = { "Computer"}; cout < #include void main(void) { char str1[10] = { "Tsinghua "}; char str2[10] = { "Computer"}; cout <

VB常用函数

VB常用函数: 1.数值型函数: int(num): 取整int(99.8)=99; int(-99.2)=-100 fix(num):取整fix(99.8)=99; fix(-99.2)=-99 round(num,n): 四舍五入取小数位round(3.14159,3)=3.142 中点数值四舍五入为近偶取整round(3.25,1)=3.3 sqr(num) 取根号 2.字符串函数: len(str):计算字符串长度中文字符长度也计为一!mid(str,起始字符,[读取长度]):截取字符串中间子字符串 left(str,nlen):从左边起截取nlen长度子字符串 right(str,nlen):从右边起截取nlen长度子字符串 trim(str):去除字符串两端空格 replace(str,查找字符串,替代字符串,[起始字符,替代次数,比较方法]):替换字符串 注:默认值:起始字符1;替代次数不限;比较方法区

分大小写(0) InStr([起始字符,]str,查找字符串[,比较方法]):检测是否包含子字符串可选参数需同时选返回起始位置InStrrev() split(str,分割字符串[,次数][,比较方法]):以分割字符串为分割标志将字符串转为字符数组可选参数需同时选CHR(num)通过ASCII值获取一个字符 chr(32) 空格 chr(13) 回车 Ucase(str)所有字符转成大写 Lcase(str)所有字符转成小写 3.数据类型转换函数: Cint(str):转换正数True -1;False 0;日期距离1899/12/31天数;时间上午段0;下午段1; Cstr(str):日期输出格式yyyy/mm/dd;时间输出格式Am/Pm hh:mm:ss Csng(str):转换为单精度数值 Cdbl(str):转换为双精度数值 Cdate() 4.时间函数: date:取系统当前日期

VBA函数大全

Abs函数 返回参数的绝对值,其类型和参数相同。 Array函数 返回一个包含数组的Variant。 Asc函数 返回一个Integer,代表字符串中首字母的字符代码。Atn函数 返回一个Double,指定一个数的反正切值。CallByName函数 执行一个对象的方法,或者设置或返回一个对象的属性。Choose函数 从参数列表中选择并返回一个值。 Chr函数

返回String,其中包含有与指定的字符代码相关的字符。Cos函数 返回一个Double,指定一个角的余弦值。CreateObject函数 创建并返回一个对ActiveX对象的引用。CurDir函数 返回一个Variant(String),用来代表当前的路径。CVErr函数 返回Error子类型的Variant,其中包含指定的错误号。Date函数 返回包含系统日期的Variant(Date)。

DateAdd函数 返回包含一个日期的Variant(Date),这一日期还加上了一段时间间隔。DateDiff函数 返回Variant(Long)的值,表示两个指定日期间的时间间隔数目。DatePart函数 返回一个包含已知日期的指定时间部分的Variant(Integer)。DateSerial函数 返回包含指定的年、月、日的Variant(Date)。DateValue函数

返回一个Variant(Date)。 Day函数 返回一个Variant(Integer),其值为1到31之间的整数,表示一个月中的某一日。 DDB函数 返回一个Double,指定一笔资产在一特定期间内的折旧。可使用双下落收复平衡方法或其它指定的方法进行计算。 Dir函数 返回一个String,用以表示一个文件名、目录名或文件夹名称,它必须与指定的模式或文件属性、或磁盘卷标相匹配。 DoEvents函数

excelvba常见字典用法集锦及代码详解(全)

常见字典用法集锦及代码详解 前言 凡是上过学校的人都使用过字典,从新华字典、成语词典,到英汉字典以及各种各样数不胜数的专业字典,字典是上学必备的、经常查阅的工具书。有了它们,我们可以很方便的通过查找某个关键字,进而查到这个关键字的种种解释,非常快捷实用。 凡是上过EH论坛的想学习VBA里面字典用法的,几乎都看过研究过northwolves狼版主、oobird版主的有关字典的精华贴和经典代码。我也是从这里接触到和学习到字典的,在此,对他们表示深深的谢意,同时也对很多把字典用得出神入化的高手们致敬,从他们那里我们也学到了很多,也得到了提高。 字典对象只有4个属性和6个方法,相对其它的对象要简洁得多,而且容易理解使用方便,功能强大,运行速度非常快,效率极高。深受大家的喜爱。 本文希望通过对一些字典应用的典型实例的代码的详细解释来

给初次接触字典和想要进一步了解字典用法的朋友提供一点备查的参考资料,希望大家能喜欢。 给代码注释估计是大家都怕做的,因为往往是出力不讨好的,稍不留神或者自己确实理解得不对,还会贻误他人。所以下面的这些注释如果有不对或者不妥当的地方,请大家跟帖时指正批评,及时改正。 字典的简介 字典(Dictionary)对象是微软Windows脚本语言中的一个很有用的对象。 附带提一下,有名的正则表达式(RegExp)对象和能方便处理驱动器、文件夹和文件的(FileSystemObject)对象也是微软Windows脚本语言中的一份子。 字典对象相当于一种联合数组,它是由具有唯一性的关键字(Key)和它的项(Item)联合组成。就好像一本字典书一样,是

各种字符串处理函数示例(基本)

示例 1.字符串输出示例。 程序: #include void main(void) { char str[25]={"Welcome to our city!"}; puts(str); puts("Thank you!"); } 结果: 2.字符串输入实例。(注意比较gets与scanf和puts与printf的区别)程序: #include void main(main) { char str[20]; gets(str); puts(str); printf("*********\n"); scanf("%s",str); puts(str); } 结果: 3.测字符串长度函数strlen()的使用。 程序: #include #include void main(main) { char a[10]="program";

int x,y; x=strlen(a); y=strlen("abc13"); printf("%d\n%d\n\n",x,y); } 结果: 4.字符串连接函数的使用。 程序: #include #include void main(main) { char s1[20]="Hello",s2[6]="Word"; puts(s1); puts(s2); strcat(s1,s2); printf("%s\n",s1); } 结果: 修改后 程序: #include #include void main(main) { char s1[5]="Hello",s2[6]="Word"; puts(s1); puts(s2); strcat(s1,s2); printf("%s\n",s1); } 结果:

vb字符串处理函数

vb字符串处理函数 Posted on 2012-04-09 14:52 ╰★张志峰★╮阅读(1996) 评论(0) 编辑收藏 vb字符串处理函数 LEN字串長度函數:計算字串的長度。函數運算式結果 len("abcd") 4 len("中文字") 3 len(abc中文) 5 MID取部份字串函數:依開始位置擷取固定長度字串。函數運算式結果 mid("vbscript",3,3) scr mid("vbscript",3) script mid("vbscript",1,2) vb LEFT字串開頭取部份字串函數:將某一字串由開頭擷取固定長度。函數運算式結果left("vbscript",2) vb left("vbscript",5) vbscr RIGHT字串結尾取部份字串函數:將某一字串由結尾擷取固定長度。函數運算式結果right("vbscript",2) pt right("vbscript",6) script LCASE轉大寫函數:將字串中的大寫字母變成小寫。函數運算式結果 lcase("VBScript") vbscript lcase("VBScript程式") vbscript程式 UCASE轉小寫函數:將字串中的小寫字母變成大寫。函數運算式結果 ucase("VBScript") VBSCRIPT ucase("VBScript程式") VBSCRIPT程式 TRIM刪除頭及尾空白字元函數:將字串開頭及結尾的空白字元刪除。 LTRIM刪除開頭空白函數:將字串開頭的空白字元刪除。 RTRIM刪除結尾空白函數:將字串結尾的空白字元刪除。函數運算式結果 trim(" VBScript ") VBScript ltrim(" VBScript ") VBScript rtrim(" VBScript ") VBScript REPLACE替代字串函數:將字串中的某字串用另一字串代替。函數運算式結果replace("VBScript","VB","JAVA") JAVAScript

VBA函数大全自己的

V B A函数大全自己的公司标准化编码 [QQX96QT-XQQB89Q8-NQQJ6Q8-MQM9N]

Abs函数 返回参数的绝对值,其类型和参数相同。 Array函数 返回一个包含的。 Asc函数 返回一个,代表字符串中首字母的。 Atn函数 返回一个,指定一个数的反正切值。CallByName函数 执行一个对象的方法,或者设置或返回一个的属性。Choose函数 从列表中选择并返回一个值。 Chr函数 返回,其中包含有与指定的相关的字符。 Cos函数 返回一个Double,指定一个角的余弦值。CreateObject函数 创建并返回一个对的引用。

CurDir函数 返回一个Variant(String),用来代表当前的路径。 CVErr函数 返回Error子类型的,其中包含指定的。 Date函数 返回包含系统日期的Variant(Date)。 DateAdd函数 返回包含一个日期的Variant(Date),这一日期还加上了一段时间间隔。DateDiff函数 返回Variant(Long)的值,表示两个指定日期间的时间间隔数目。DatePart函数 返回一个包含已知日期的指定时间部分的Variant(Integer)。DateSerial函数

返回包含指定的年、月、日的Variant(Date)。 DateValue函数 返回一个Variant(Date)。 Day函数 返回一个Variant(Integer),其值为1到31之间的整数,表示一个月中的某一日。 DDB函数 返回一个,指定一笔资产在一特定期间内的折旧。可使用双下落收复平衡方法或其它指定的方法进行计算。 Dir函数 返回一个String,用以表示一个文件名、目录名或文件夹名称,它必须与指定的模式或文件属性、或磁盘卷标相匹配。 DoEvents函数 转让控制权,以便让操作系统处理其它的事件。 Environ函数 返回String,它关连于一个操作系统环境变量。在Macintosh中不可用

VB字符串转换函数

VB中涉及到的数据进制之间的转换函数主要有如下几个: Hex 函数: 返回代表十六进制数值的String; Oct 函数: 返回代表一数值的八进制值的V ariant (String); Cint函数: 强制将一个表达式转换成-32,768 至32,767的整型; CLng函数: 强制将一个表达式转换成-2,147,483,648 至2,147,483,647的长整型; Cdec函数: 强制将一个表达式转换成Decimal 数据类型; CDbl函数: 强制将一个表达式转换成Double 数据类型; 以上这些函数是最基本的几个数据进制之间的转换函数,其中以前三个函数最常用,也最有用.从上面几个函数我们可以看到,VB中没有为我们提供专门的函数供我们将表达式或是数据转换成十进制和二进制,不过十进制的转换我们可以通过Cint函数轻松完成,而二进制的实现我们可以通过二进制和八进制,十六进制的关系轻松转换. 下面几个例子为Hex函数和Oct函数以及Cint函数的实例: (1). A= hex(5) 返回5; (2). B=hex(10) 返回A (3). C=hex(23) 返回17 (4). D=oct(5) 返回5 (5). E=oct(10) 返回12 (6). F=oct(23) 返回27 (7). G=Cint(&H17) 返回23 (8) . H=Cint(&O12) 返回10 以上这些函数的应用比较简单,就不多说了,值得一提的是Hex函数和Oct函数返回的都是字符串,如果是想将十六进制或是八进制的字符串变量转换成十进制,可以按如下方法进行: C=”17” 17为十六进制数值的String C=”&H” & C Ic=Cint(C) 返回23 2. 字符串和数字转换函数 VB中的字符串函数比较多,也比较方便,就不一一介绍了.本文主要对字符串相关的转换函数做一些小结.字符串转换的函数主要有: Str()和V al()用于字符串和数字的相互转换; Chr()和Asc()用于字符串和AscII码的相互转换; Chrw()和Ascw()用于Unicode码和中文的相互转换; Format()函数用途十分广泛的一个函数,功能十分强大. 在这些函数中前两对和Format()函数是我们经常用到的,这里只给出前两对的几个简

excelVBA常用函数

(1) Option Explicit '强制对模块内所有变量进行声明 Option Private Module '标记模块为私有,仅对同一工程中其它模块有用,在宏对话框中不显示 Option Compare Text '字符串不区分大小写 Option Base 1 '指定数组的第一个下标为1 (2) On Error Resume Next '忽略错误继续执行VBA代码,避免出现错误消息 (3) On Error GoTo ErrorHandler '当错误发生时跳转到过程中的某个位置 (4) On Error GoTo 0 '恢复正常的错误提示 (5) Application.DisplayAlerts=False '在程序执行过程中使出现的警告框不显示 (6) Application.ScreenUpdating=False '关闭屏幕刷新 Application.ScreenUpdating=True '打开屏幕刷新 (7) Application.Enable.CancelKey=xlDisabled '禁用Ctrl+Break中止宏运行的功能 工作簿 (8) Workbooks.Add() '创建一个新的工作簿 (9) Workbooks(“book1.xls”).Activate '激活名为book1的工作簿 (10) ThisWorkbook.Save '保存工作簿 (11) ThisWorkbook.close '关闭当前工作簿 (12) ActiveWorkbook.Sheets.Count '获取活动工作薄中工作表数 (13) https://www.wendangku.net/doc/5b5084767.html, '返回活动工作薄的名称

(完整版)vb_字符串处理函数大全

mid(字符串,从第几个开始,长度)ByRef 在[字符串]中[从第几个开始]取出[长度个字符串] 例如mid("坦然面对",1,3) 则返回"坦然面" instr(从第几个开始,字符串1,字符串2)ByVal 从规定的位置开始查找,返回字符串2在字符串1中的位置 例如instr(1,"坦然面对","坦") 则返回1,instr(2,"坦然面对","坦"),则返回0 。0 表示未找到 InStrRev(字符串1,字符串2,从第几个开始) ByVal 从规定的位置开始,从后住前查找,返回字符串2在字符串1中的位置,此处注意,虽是从后住前查找,但是返回的值还是从前往后算的。 例如instrRev("坦然面对","坦",2) 则返回2 ; instrRev("坦然面对","然",1) 则返回0 ,因为它从"坦然面对"的第1个字开始往前查找,所以找不到。0 表示未找到 left(字符串,长度) ByVal 从[字符串]的左边开始返回[长度]个字符 例如Left("坦然面对",3) 则返回"坦然面" right(字符串,长度) ByVal 从[字符串]的右边开始返回[长度]个字符 例如Right("坦然面对",3) 则返回"然面对" ucase(字符串) ByVal 返回[字符串]的大写形式,只对英文字符有效 例如ucase("tanRANmiAnDui") 则返回"TANRANMIANDUI" lcase(字符串) ByVal 返回[字符串]的小写形式,只对英文字符有效 例如lcase("tanRANmiAnDui") 则返回"tanranmiandui" asc(字符) Byval返回[字符]的ascii编码,若有多个字符,则只返回首字符的ascii编码,和Chr()函数是一个可逆的过程 例如asc("坦") 则返回-13127; asc("坦然面对") 也返回-13127 chr(ASCii编码) Byval 返回[Ascii]编码所代表的字符,和Chr()函数是一个可逆的过程 例如chr(-13127) 则返回"坦" ;chr(asc("坦")) 则返回"坦"(这里是为了说明asc和chr的可逆性,例用此特性可以加密文本) trim(字符串) Byval 返回去掉了前、后之后的[字符串] 例如trim("坦然面对") 则返回"坦然面对" ,中间的空格不受任何影响 string(个数,字符) Byval 返回[个数]个[字符] 例如string(3,"坦") 则返回"坦坦坦" , 而string(3,"坦然面对") 也返回"坦坦坦",只有首字符才有效 space(个数) Byval 返回[个数]个空格 例如space(5) 则返回""

vba常用代码大全

前言 我们平时在工作表单元格的公式中常常使用函数,Excel自带的常用的函数多达300多个,功能强大,丰富多彩,但是在VBA中不能直接应用,必须在函数名前面加上对象,比如:Application.WorksheetFunction.Sum(arg1,arg2,arg3)。 而能在VBA中直接应用的函数也有几十个,下面将逐一详细介绍常用的40个VBA函数,以供大家学习参考。 第1.1例 ASC函数 一、题目: 要求编写一段代码,运行后得到字符串”Excel”的首字母和”e”的ASCII值。 二、代码: Sub 示例_1_01() Dim myNum1%, myNum2% myNum1 = Asc("Excel") '返回69 myNum2 = Asc("e") '返回101 [a1] = "myNum1= ": [b1] = myNum1 [a2] = "myNum2= ": [b2] = myNum2 End Sub 三、代码详解 1、Sub 示例_1_01():宏程序的开始语句。 2、Dim myNum1%, myNum2%:变量myNum1和myNum2声明为整型变量。

也可以写为 Dim myNum1 As Integer 。Integer 变量存储为 16位(2 个字节)的数值形式,其范围为 -32,768 到 32,767 之间。Integer 的类型声明字符是百分比符 号 (%)。 3、myNum1 = Asc("Excel"):把Asc函数的值赋给变量myNum1。 Asc函数返回一个 Integer,代表字符串中首字母的字符的ASCII代码。 语法 Asc(string) 必要的 string(字符串)参数可以是任何有效的字符串表达式。如果 string 中没有包含任何字符,则会产生运行时错误。 4、myNum2 = Asc("e"):把Asc函数的值赋给变量myNum2。这里返回小写字母e 的ASCII代码101。 5、[a1] = "myNum1= ": [b1] = myNum1:把字符串“myNum1= “赋给A1单元格,把变量myNum1的值赋给B1单元格。 6、[a2] = "myNum2= ": [b2] = myNum2:把字符串“myNum2= “赋给A2单元格,把变量myNum2的值赋给B2单元格。 7、End Sub:程序的结束语句,和“Sub示例_1_01()”相对应。 第1.2例 Chr函数 一、题目"": 要求编写一段代码,运用Chr函数将ASCII值转换为对应的字符。 二、代码: Sub 示例_1_02()

EXCEL VBA 编程常用时间函数

时间函数 Now 返回一个Variant (Date),根据计算机系统设置的日期和时间来指定日期和时间。Date 返回包含系统日期的Variant (Date)。 Time 返回一个指明当前系统时间的Variant (Date)。 Timer 返回一个Single,代表从午夜开始到现在经过的秒数。 TimeSerial(hour, minute, second) 返回一个Variant (Date),包含具有具体时、分、秒的时间。DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]]) 返回Variant (Long) 的值,表示两个指定日期间的时间间隔数目 Second(time) 返回一个Variant (Integer),其值为0 到59 之间的整数,表示一分钟之中的某个秒 Minute(time) 返回一个Variant (Integer),其值为0 到59 之间的整数,表示一小时中的某分钟 Hour(time) 返回一个Variant (Integer),其值为0 到23 之间的整数,表示一天之中的某一钟点 Day(date) 返回一个Variant (Integer),其值为1 到31 之间的整数,表示一个月中的某一日 Month(date) 返回一个Variant (Integer),其值为1 到12 之间的整数,表示一年中的某月Year(date) 返回Variant (Integer),包含表示年份的整数。 Weekday(date, [firstdayofweek]) 返回一个Variant (Integer),包含一个整数,代表某个日期是星期几

acm常用字符串处理函数

sstrstr与strchar用法 原型:extern char *strstr(char *haystack, char *needle); 用法:#include 功能:从字符串haystack中寻找needle第一次出现的位置(不比较结束符NULL)。 说明:返回指向第一次出现needle位置的指针,如果没找到则返回NULL。 举例: #include #include main() { char *s="Golden Global View"; char *l="lob"; char *p; clrscr(); p=strstr(s,l); if(p) printf("%s",p); else printf("Not Found!"); getchar(); return 0; } 语法:int strstr(str1,str2) str1: 被查找目标string expression to search. str2:要查找对象The string expression to find. 该函数返回str2第一次在str1中的位置,如果没有找到,返回NULL The strstr() function returns the ordinal position within str1 of the first occurrence of str2. If str2 is not found in str1, strstr() returns 0. 例子: 功能:从字串” string1 onexxx string2 oneyyy”中寻找”yyy” (假设xxx和yyy都是一个未知的字串) char *s=” string1 onexxx string2 oneyyy”; char *p; p=strstr(s,”string2”); if(!p) printf(“Not Found!”); p=strstr(p,”one”); if(!p) printf(“Not Found!”); p+=strlen(“one”) printf(“%s”,p); 说明:如果直接写语句p=strstr(p,”one”),则找到的是xxx,不符合要求 所以需采用二次查找法找到目标

Excel中的VBA内部函数有哪些

Excel中的VBA内部函数有哪些 一.测试函数 IsNumeric(x)‘是否为数字,返回Boolean结果,TrueorFalse IsDate(x)‘是否是日期,返回Boolean结果,TrueorFalse IsEmpty(x)‘是否为Empty,返回Boolean结果,TrueorFalse IsArray(x)‘指出变量是否为一个数组。 IsError(expression)‘指出表达式是否为一个错误值 IsNull(expression)‘指出表达式是否不包含任何有效数据(Null)。 IsObject(identifier)‘指出标识符是否表示对象变量 二.数学函数 Sin(X)、Cos(X)、Tan(X)、Atan(x)三角函数,单位为弧度 Log(x)返回x的自然对数 Exp(x)返回ex Abs(x)返回绝对值 Int(number)、Fix(number)都返回参数的整数部分,区别:Int 将-8.4转换成-9,而Fix将-8.4转换成-8 Sgn(number)返回一个Variant(Integer),指出参数的正负号 Sqr(number)返回一个Double,指定参数的平方根 VarType(varname)返回一个Integer,指出变量的子类型 Rnd(x)返回0-1之间的单精度数据,x为随机种子 三.字符串函数

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)转换为大写 Lcase(string)转换为小写 Space(x)返回x个空白的字符串 Asc(string)返回一个integer,代表字符串中首字母的字符代码 Chr(charcode)返回string,其中包含有与指定的字符代码相关的字符 四.转换函数 CBool(expression)转换为Boolean型 CByte(expression)转换为Byte型 CCur(expression)转换为Currency型 CDate(expression)转换为Date型 CDbl(expression)转换为Double型 CDec(expression)转换为Decemal型 CInt(expression)转换为Integer型

javascript字符串处理函数汇总

javascript字符串处理函数汇总 虽然JavaScript 有很多用处,但是处理字符串是其中最流行的一个。下面让我们深入地分析一下使用JavaScript 操作字符串。 在JavaScript 中,String 是对象。String 对象并不是以字符数组的方式存储的,所以我们必须使用内建函数来操纵它们的值。这些内建函数提供了不同的方法来访问字符串变量的内容。下面我们详细看一下这些函数。 操作字符串的值是一般的开发人员必须面临的家常便饭。操作字符串的具体方式有很多,比如说从一个字符串是提取出一部分内容来,或者确定一个字符串是否包含一个特定的字符。下面的JavaScript 函数为开发人员提供了他们所需要的所有功能: ? concat() –将两个或多个字符的文本组合起来,返回一个新的字符串。 ? indexOf() –返回字符串中一个子串第一处出现的索引。如果没有匹配项,返回-1 。 ? charA T() –返回指定位置的字符。 ? lastIndexOf() –返回字符串中一个子串最后一处出现的索引,如果没有匹配项,返回 -1 。 ? match() –检查一个字符串是否匹配一个正则表达式。 ? substring() –返回字符串的一个子串。传入参数是起始位置和结束位置。 ? replace() –用来查找匹配一个正则表达式的字符串,然后使用新字符串代替匹配的字符串。 ? search() –执行一个正则表达式匹配查找。如果查找成功,返回字符串中匹配的索引值。否则返回-1 。 ? slice() –提取字符串的一部分,并返回一个新字符串。 ? split() –通过将字符串划分成子串,将一个字符串做成一个字符串数组。

在Excel VBA中调用Excel自带函数

在Excel VBA中调用Excel自带函数-Excel VBA学习 2010-03-29 19:45:25| 分类: computer|字号订阅 最近在写一个VBA的程序,想自己生成一些报表.便遇到了在VBA中无法使用SUM函数.解决的方法如下: 前段时间为公司实验室编制测试数据库,其中遇到一个问题,怎样在VBA中使用Excel自带的一些函数呢?如min,max,average等等。 本以为能在Excel表格中直接使用的函数也能直接移植到VBA中,结果发现根本行不通,程序报错。后来通过多方查询发现,虽然不能直接引用,但是我们可以曲线救国,excel中表格可以用max函数,在VBA中也可以用,只需通过WorksheetFunction对象就可以引用,后面加函数名称,然后加range来引用单元格。举个例子: Application.WorksheetFunction.Max(range("A1:C5")) 下面就是能在VBA中使用excel自带函数: A__ Acos Acosh And Asin Asinh Atan2 Atanh AveDev Average B__ BetaDist BetaInv BinomDist C__ Ceiling ChiDist ChiInv ChiTest Choose Clean Combin Confidence Correl Cosh Count CountA CountBlank CountIf

Covar CritBinom D__ DAverage Days360 Db DCount DCountA Ddb Degrees DevSq DGet DMax DMin Dollar DProduct DStDev DStDevP DSum DVar DVarP E__ Even ExponDist F__ Fact FDist Find FindB FInv Fisher FisherInv Fixed Floor Forecast Frequency FTest Fv G__ GammaDist

C语言字符串操作总结大全(超详细)

C语言字符串操作总结大全(超详细) 1)字符串操作 strcpy(p, p1) 复制字符串 strncpy(p, p1, n) 复制指定长度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定长度字符串 strlen(p) 取字符串长度 strcmp(p, p1) 比较字符串 strcasecmp忽略大小写比较字符串 strncmp(p, p1, n) 比较指定长度字符串 strchr(p, c) 在字符串中查找指定字符 strrchr(p, c) 在字符串中反向查找 strstr(p, p1) 查找字符串 strpbrk(p, p1) 以目标字符串的所有字符作为集合,在当前字符串查找该集合的任一元素strspn(p, p1) 以目标字符串的所有字符作为集合,在当前字符串查找不属于该集合的任一元素的偏移 strcspn(p, p1) 以目标字符串的所有字符作为集合,在当前字符串查找属于该集合的任一元素的偏移 * 具有指定长度的字符串处理函数在已处理的字符串之后填补零结尾符 2)字符串到数值类型的转换 strtod(p, ppend) 从字符串p 中转换double 类型数值,并将后续的字符串指针存储到ppend 指向的char* 类型存储。 strtol(p, ppend, base) 从字符串p 中转换long 类型整型数值,base 显式设置转换的整型进制,设置为0 以根据特定格式判断所用进制,0x, 0X 前缀以解释为十六进制格式整型,0 前缀以解释为八进制格式整型 atoi(p) 字符串转换到int 整型 atof(p) 字符串转换到double 符点数 atol(p) 字符串转换到long 整型 3)字符检查 isalpha() 检查是否为字母字符 isupper() 检查是否为大写字母字符 islower() 检查是否为小写字母字符 isdigit() 检查是否为数字 isxdigit() 检查是否为十六进制数字表示的有效字符 isspace() 检查是否为空格类型字符 iscntrl() 检查是否为控制字符 ispunct() 检查是否为标点符号 isalnum() 检查是否为字母和数字 isprint() 检查是否是可打印字符 isgraph() 检查是否是图形字符,等效于isalnum() | ispunct()

字符串处理函数大全

字符串处理函数大全 bcmp(比较内存内容)相关函数 bcmp,strcasecmp,strcmp,strcoll,strncmp,strncasecmp 表头文件;include 定义函数;int bcmp ( const void *s1,const void * s2,int n); 函数说明;bcmp()用来比较s1和s2所指的内存区间前n个字节,若参数n为0,则返回0。返回值;若参数s1 和s2 所指的内存内容都完全相同则返回0 值,否则返回非零值。 附加说明;建议使用memcmp()取代。 范例:参考memcmp()。 //================================================================ bcopy(拷贝内存内容)相关函数 memccpy,memcpy,memmove,strcpy,ctrncpy 表头文件;#include 定义函数;void bcopy ( const void *src,void *dest ,int n); 函数说明;bcopy()与memcpy()一样都是用来拷贝src所指的内存内容前n个字节到dest所指的地址,不过参数src与dest在传给函数时是相反的位置。 返回值 ;附加说明建议使用memcpy()取代 范例 #include main() { char dest[30]=”string(a)”; char src[30]=”string\0string”; int i; bcopy(src,dest,30);/* src指针放在前*/ printf(bcopy(): “) for(i=0;i<30;i++) printf(“%c”,dest[i]); memcpy(dest src,30); /*dest指针放在钱*/ printf(…\nmemcpy() : “); for(i=0;i<30;i++) printf(“%c”,dest[i]); 执行 bcopy() : string string memcpy() :string sring //================================================================ bzero(将一段内存内容全清为零)相关函数 memset,swab 表头文件;#include 定义函数;void bzero(void *s,int n); 函数说明:bzero()会将参数s所指的内存区域前n个字节,全部设为零值。相当于调用memset((void*)s,0,size_tn); 返回值:附加说明建议使用memset取代

相关文档