当前位置:文档之家› VBA字符串处理

VBA字符串处理

VBA字符串处理
VBA字符串处理

VBA字符串处理专题

查找特定字符串的代码

这是我在QQ群(蓝色幻想读者群)里面回复——小桥.流水(290931055) 的求助:

Sub rrr()

Dim pos%, w$

w = "BSQ1-3-(5,6)"

pos = Application.WorksheetFunction.Find("SQ", w)

MsgBox pos

End Sub

还可以

Sub rrr()

Dim pos%, w$

w = Sheet1.Cells(1, 1).Value 'A1的内容为:BSQ1-3-(5,6)"

pos = Application.WorksheetFunction.Find("SQ", w)

MsgBox pos

End Sub

*************************补充一下********************************** *****************************

instr函数:指定一字符串在另一字符串中最先出现的位置

InStr(开始位置,查找的字符串, 搜索的子字符串)

例:InStr(1, w,"SQ")

统计一个字符串中的某个字符的出现次数,比如"asdsd" s出现两次,应该用哪个函数?

Sub ttt()

Dim Q$, I%, J%, W%

Q = "asdsd"

I = Len(Q)

For J = 1 To I

If Mid(Q, J, 1) = "s" Then W = W + 1

Next

MsgBox W

End Sub

*************************补充一下************************************ ***************************

以上循环也可以用以下语句实现:

Sub ttt()

Msgbox Len("dSdSd") - Len(Replace("dSdSd", "S", ""))

End Sub

注:

Replace是在一个字符串中,对指定的字符串进行替换为其他指定的字符串.本例中在字符串"dSdSd"中,用""替换"S",然后用原来的总长度(LEN函数求得)减去替换后的总长度,即为S的个数.

某个字符的出现次数(自定义函数法)

Function test(X, S As String) As Integer

Dim I%, J%

I = Len(X)

For J = 1 To I

If Mid(X, J, 1) = "s" Then test = test + 1

Next

End Function

用这个自定义函数也可以

比如A1的内容是:asdsd

你在a2输入: =test(a1,"s")

或者想计算 d 有几个

=test(a1,"d")

自定义函数比宏(过程sub ***() …… end sub)灵活一点

*****************************************************************

根据蓝色幻想版主的提示,还可以自定义函数改修为:

Function test(X, S As String) As Integer

test = Len(X)-len(replace(x,s,""))

End Function

返回定长字符串的工作表函数法和VBA法

又要问一个了:取一个字符串中某个位置的定长字符串,有那个函数么?比如:"asdfg",从第3个字符开始取长度为2的字符串.

回复:

工作表函数 =mid("asdfg",3,2)

VBA中也有这个函数,l例如:

Sub t()

Dim D$

D = Mid("asdfg", 3, 2)

MsgBox D

End Sub

文本化数字转换为数值型数字的几种方法

"34"转化为34,有转化函数么?

回复:

*1

就可以了

还有多种方法:

*1

/1

+0

-0

--"34"

等等都可以

还可以采用复制->选择性粘贴等等

*************************补充一下********************************************** *****************

在VBA中转化数值的函数有以下几个:

CDbl Double 负数从 -1.79769313486231E308 至

-4.94065645841247E-324;正数从

4.94065645841247E-324 至

1.79769313486232E308。

CDec Decimal零变比数值,即无小数位数值,为

+/-79,228,162,514,264,337,593,543,950,335。

对于 28 位小数的数值,范围则为

+/-7.9228162514264337593543950335;最小的可

能非零值是 0.0000000000000000000000000001。CInt Integer-32,768 至 32,767,小数部分四舍五入。

CLng Long-2,147,483,648 至 2,147,483,647,小数部分四

舍五入

反向查找字符串位置的方法(VBA法)

字符串的反向查找函数有么?

"dSdSd",反向查找第一个S,返回:4.

回复:

Sub TTT()

Dim T$, I%, J%, K%

T = "dSdSd"

I = Len(T)

For J = 1 To I

If Right(T, 1) = "S" Then

K = I - J + 1

Exit For

Else

T = Left(T, I- J)

End If

Next

MsgBox K

End Sub

*************************补充一下*********************************************** ****************

在VBA中InStrRev是执行反向查找的函数.

用法为:InStrRev(搜索的字符串, 查找的字符或字符串,开始查找的位置(倒数的位置))本例可简化为:

InStrRev("dSdSd", "S")

字符串比较:解读Like运算符

Like运算符是字符串比较时经常使用的运算符,也是VBA较难掌握的运算符。

语法:

结果 = 字符串 Like 模式

如果字符串与模式匹配,结果为True,否则为False。但是如果Like两端的字符串和模式有一个为Null,则结果为Null。

VBA内建的模式匹配功能提供了丰富的字符串比较方式,在模式表达式中可以使用通配符、字符列表(或字符区间)的任何组合来匹配字符串。

模式中的字符与模式匹配的字符串中的字符

? 任何单一字符

* 零个或多个字符

# 任何一个数字(0-9)

[字符列表] 字符列表中的任何一个字符

[!字符列表] 不在字符列表中的任何一个字符

其它字符(串) 与自身匹配

1.Like在字符串比较时受Option Compare语句的影响,在默认情况下(Option Compare Bina ry),字符比较根据内部二进制表示法(ASCII码)进行,是区分大小写的,此时 "A" Like "a " 的结果为False。如果声明了Option Compare Text,则不区分大小写比较,"A" Like "a" 的结果为True。

后面的讨论假设默认情况下。

2.如果模式中没有使用通配符(?、*、#)和字符列表,此时Like运算符等价于=(等号)运算符。下面表达式的结果相同。

s Like "AB"

s = "AB"

3.字符列表

理解字符列表的用法是学会Like的难点,所以,下面我会多花些笔墨帮你理解它。

(1)一个字符列表匹配的是字符串中的一个字符,不管字符列表中实际有多少个字符。 "A" Like [ABCDEGHIJ2345] 结果为True

"AB" Like [ABCDEGHIJ2345] 结果为False

唯一的例外是[]被看作长度为零的字符串。

(2)字符列表中的单个字符,没有顺序要求,上面[ABCDEGHIJ2345]和[ACDEGHIJ2345B]、[3ABCD EGHIJ245]...等等是一样的表达。

(3)字符列表中一段连续的字符(称为区间,一个字符列表可以有多个区间,广义上,单个字符也可被看作一个区间),可以使用连字符(-,减号)简化表达式,如上面的表达式[ABCDEGHIJ 2345]可以简化为[A-EG-J2-5],连字符要遵循从小到大的顺序(升序),即连字符(-)右端的字符应大于左端的字符,如其中的A-E不能写成E-A,后者系统会报错。但多个区间之间没有顺序要求,这意味着[G-J2-5A-E]、[2-5G-JA-E]...等是同一表达。但下面的表达是错误的,同时也是常见的:

[A-E G-J 2-5]、[A-E,G-J,2-5]、[A-E;G-J;2-5]

也许只是一种习惯或想当然,第一个除了要求表达的ABCDEGHIJ2345外,还多加了一个空格;后面两个分别多了逗号(,)和分号(;)。

"," Like [A-EG-J2-5] 结果为False

"," Like [A-E,G-J,2-5] 结果为True

(4)被中括号([])括起的字符列表中的字符,?、*、#不被理解为通配符,而是表示符号自身。如果要表示-(减号,连字符),可以放在列表的开头或结尾。如[ABC-]、[-ABC]。

"3" Like "?" 结果为True

"3" Like "[?]" 结果为False

"?" Like "[?]" 结果为True

这一特性通常被用作特殊字符的表示,例如,除了通配符外,左括号 ([)等特殊字符都可以将它们用方括号括起来。要注意的是,也不能在一个组内使用右括号 (]) 与自身匹配,但在组外可以作为个别字符使用。

(5)在字符列表加上!(感叹号)开头,表示要匹配的是不在字符列表中的任一字符(不包括开头的!自身)。[!!]表示除了感叹号之外的任一字符。

5.例子

下面是EXCEL/VBA帮助中举的几个Like运算符的例子,对照结果看看,如果和你想的结果都一样,说明你已经基本掌握了Like用法。

Dim MyCheck

MyCheck = "aBBBa" Like "a*a" ' 返回 True。

MyCheck = "F" Like "[A-Z]" ' 返回 True。

MyCheck = "F" Like "[!A-Z]" ' 返回 False。

MyCheck = "a2a" Like "a#a" ' 返回 True。

MyCheck = "aM5b" Like "a[L-P]#[!c-e]" ' 返回 True。

MyCheck = "BAT123khg" Like "B?T*" ' 返回 True。

MyCheck = "CAT123khg" Like "B?T*" ' 返回 False。

6.思考题

假设有一字符串s,写出表达式,判断s是否是仅由字母组成并且以字母e(E)结尾的字符串。答案在本专题后公布。

Mid语句:替换字符串的部分内容

是的,你没有看错,我是说Mid语句,而不是Mid函数。

让我们看一个例子。

已知:字符串s="12345",整数i=2

要求:将s的第i个字符替换为"d"

通常的方法(Mid函数):

s=left(s,i-1) & "d" & mid(s,i+1)

Mid语句的方法:

Mid(s, i, 1) = "d"

下面我们来看看帮助中介绍的的Mid语句

Mid 语句

在一 Variant (String) 变量中以另一个字符串中的字符替换其中指定数量的字符。

语法

Mid(stringvar, start[, length]) = string

stringvar 必要参数。被更改的字符串变量名。

start 必要参数;Variant (Long)。stringvar 中被替换的字符开头位置。

length 可选参数;Variant (Long)。被替换的字符数。如果省略,string将全部用上。

string 必要参数。字符串表达式,替换部分 stringvar 的址 ?

说明

被替换的字符数量总是小于或等于 stringvar 的字符数。

示例

Sub UseMid()

Dim s$

s = "12345"

Mid(s, 2, 1) = "d"

Debug.Print s '1d345 --替换1个字符,第2个字符被替换为d

s = "12345"

Mid(s, 2, 1) = "df"

Debug.Print s '1d345 --只替换1个字符,第2个字符被忽略

s = "12345"

Mid(s, 2, 2) = "df"

Debug.Print s '1df45 --替换2个字符

s = "12345"

Mid(s, 5, 1) = "df"

Debug.Print s '1234d --只替换1个字符,第2个字符被忽略

s = "12345"

Mid(s, 5, 2) = "df"

Debug.Print s '1234d --只替换1个字符,第2个字符超出s长度,被忽略

s = "12345"

Mid(s, 6, 1) = "d" '出错 --6超出s长度

Debug.Print s

End Sub

相关

简单的介绍一下相关的三个函数,也许你已经对它们很熟悉了,我写在这儿的目的只是让这段文字看起来更完整。关于它们的具体细节,请参考帮助文档。

1.Mid函数

语法:Mid(string, start[, length])

返回从字符串string的start位置取出的指定长度length的字符,如省略length或length 超过文本的字符数(包括 start 处的字符),将返回字符串中从 start 到尾端的所有字符。

2.Right函数

语法:Right(string, length)

3.Left函数

语法:Left(string, length)

后面两个函数分别返回字符串string右(左)边取出的指定数量length的字符

查找一个字符串是否都是字母并且最后一个字符是否是“E”

查找一个字符串是否都是字母并且最后一个字符是否是“E”

做qee用7楼的作业:

Sub T()

Dim R$, W$, I%, J%, K%

R = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"

W = UCase(InputBox("请输入字符"))

I = Len(W)

For J = 1 To I

K = InStr(1, R, Mid(W, J, 1))

' MsgBox K

If K < 1 Then

MsgBox "你输入的字符含有非字母"

Exit Sub

End If

Next

If Right(W, 1) = "E" Then

MsgBox "你输入的字符都是字母并且最后一个字符是“e”或者“E”"

Else

MsgBox "你输入的字符都是字母但最后一个字符不是“e”或者“E”"

End If

End Sub

根据chenhuafu兄的要求,现把短信交流的内容贴上,作为Like的一个补充:

问:

“一个字符列表匹配的是字符串中的一个字符,不管字符列表中实际有多少个字符。”"A" Like [ABCDEGHIJ2345] 结果为True

"AB" Like [ABCDEGHIJ2345] 结果为False

这个不理解。

为什么"A" Like [ABCDEGHIJ2345] 结果为True 而多一个B 就为“False”

答:

和模式[ABCDEGHIJ2345] 匹配的字符串需符合两个条件:

1.它是有1个字符组成的字符串.因为这个模式只有一个字符列表.

2.这个字符是ABCDEGHIJ2345中的一个.

"A"符合这两个条件.所以为TRUE

"AB"不符合第1个条件.结果为FALSE

问:

"AB" 不也是包含在ABCDEGHIJ2345 的吗?难道有两个字符以上就不能比较是否包含在另一个字符串(字符列表)里面?谢谢!

答:

如果要判断字符串是否由两个上面的字符组成:模式为[ABCDEGHIJ2345][ABCDEGHIJ2345] 这时上面的"A"不匹配,"AB"匹配

Split函数\Join函数\Filter函数

Split函数

返回一个下标从零开始的一维数组,它包含指定数目的子字符串。

Split(字符串[, 分隔符[, 要返回的子字符串数量[,比较方式]]])

后三项可选,默认:分隔符为空格,返回全部子字符串,用Option Compare语句中的设置值执行比较。

下面是将1-12转化为一月-十二月的自定义函数的例子。

Function Num2ch(ByVal n As Integer) As String

Dim Arr

Arr = Split(",一月,二月,三月,四月,五月,六月,七月,八月,九月,十月,十一月,十二月", ", ")

Num2ch = Arr(n)

End Function

和Array函数相比,用Split的好处在于生成的数组是字符型的,写法上也更简洁。注意“一月”前的逗号,这是因为Split生成的数组下标是从0开始的,且不受Option Base句的影响。

Join函数

返回一个字符串,该字符串是通过连接某个数组中的多个子字符串而创建的。

Join(源数组[,分隔符])

默认:分隔符为空格

当将分隔符设为空串(””)时,会返回一个各数组元素会直接相连的字符串。

该函数是Split函数的反函数,它是将数组转化为字符串。Join和Split相配合,可用于扩充控件TAG属性的传递数量;在不定参数的传递时,可使代码看起来更简洁。

下面只是它们配合的示例,并不是这儿真有必要这样做:

Sub aMain()

Dim arr(1 To 2), s$

arr(1) = 1: arr(2) = 2

s = Join(arr, ",")

Debug.Print Myadd(s)

End Sub

Function Myadd(ByVal s As String)

Dim arr, x

arr = Split(s, ",")

For Each x In arr

Myadd = Myadd + Val(x)

Next x

End Function

Filter函数

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

Filter(源数组,要搜索的字符串[,返回子串包含还是不包含要搜索字符串[,比较方式]])

如果在源数组中没有发现与要搜索的字符串相匹配的值,Filter返回一个空数组。如果源数组是Null或不是一个一维数组,则产生错误。

注意是“包含”要搜索的字符串,而不是“等于”要搜索的字符串。这意味着,如果一数组元素为字符串“AB”,用“A”、“B”、“AB”中的任何一个去搜索(上面第三个参数为默认值Tru e),都会作为新的数组的元素被返回。但这并不影响你创造成“包含”等同于“等于”的条件,或者数据本身就符合这一要求的条件。在“包含”等同于“等于”的数组中,我们可以用下面的办法来判断一个字符串是否属于某个数组。

If UBound(Arr) = UBound(Filter(Arr, "要找的字符串", False)) Then …说明在数组Arr

中找不到

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 <

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); } 结果:

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常用字符串操作函数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 从规定的位置开始查找,返回字符

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.doczj.com/doc/a37923821.html, '返回活动工作薄的名称

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取代

Js字符串操作函数大全

Js字符串操作函数大全 /* ****************************************** 字符串函数扩充 ****************************************** */ /* =========================================== //去除左边的空格 =========================================== */ String.prototype.LTrim = function() { return this.replace(/(^\s*)/g, ""); } /* =========================================== //去除右边的空格 =========================================== */ String.prototype.Rtrim = function() { return this.replace(/(\s*$)/g, ""); } /* =========================================== //去除前后空格 =========================================== */ String.prototype.Trim = function() { return this.replace(/(^\s*)|(\s*$)/g, ""); } /* ===========================================

vba字符串函数列表

vba字符串函数列表.txt其实全世界最幸福的童话,不过是一起度过柴米油盐的岁月。一个人愿意等待,另一个人才愿意出现。感情有时候只是一个人的事,和任何人无关。爱,或者不爱,只能自行了断。1,vba字符串函数列表: 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,其中包含有与指定的字符代码相关的字符 2,VBA转换函数列表: CBool(expression) 转换为Boolean型 CByte(expression) 转换为Byte型 CCur(expression) 转换为Currency型 CDate(expression) 转换为Date型 CDbl(expression) 转换为Double型 CDec(expression) 转换为Decemal型 CInt(expression) 转换为Integer型

CLng(expression) 转换为Long型 CSng(expression) 转换为Single型 CStr(expression) 转换为String型 CVar(expression) 转换为Variant型 Val(string) 转换为数据型 Str(number) 转换为String 3,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之间的整数,表示一年中的某月

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

相关主题
文本预览
相关文档 最新文档