返回按指定类型转换的 Variant (String)。

语法

StrConv(string, conversion, LCID)

StrConv 函数的语法有下面的命名参数:

部分

说明

string

必要参数。要转换的字符串表达式。

conversion

必要参数。Integer。其值的和决定转换的类型。

LCID

可选的。如果与系统LocaleID不同,则为LocaleID(系统LocaleID为缺省值。)

设置值

conversion 参数的设置值为:

常数

说明

vbUpperCase

1

将字符串文字转成大写。

vbLowerCase

2

将字符串文字转成小写。

vbProperCase

3

将字符串中每个字的开头字母转成大写。

vbWide*

4*

将字符串中单字节字符转成双字节字符。

vbNarrow*

8*

将字符串中双字节字符转成单字节字符。

vbKatakana**

16**

将字符串中平假名字符转成片假名字符。

vbHiragana**

32**

将字符串中片假名字符转成平假名字符。

vbUnicode

64

根据系统的缺省码页将字符串转成 Unicode。

vbFromUnicode

128

将字符串由 Unicode 转成系统的缺省码页。

*应用到远东国别。

**仅应用到日本。

注意 这些常数是由 VBA 指定的。可以在程序中使用它们来替换真正的值。其中大部分是可以组合的,例如 vbUpperCase + vbWide,互斥的常数不能组合,例如 vbUnicode + vbFromUnicode。当在不适用的国别使用常数 vbWidevbNarrowvbKatakana,和 vbHiragana 时,就会导致运行时错误。

下面是一些一般情况下的有效分界符:Null (Chr$(0)),水平制表符 (Chr$(9)),换行 (Chr$(10)),垂直制表符 (Chr$(11)),换页 (Chr$(12)) ,回车 (Chr$(13)),空白 (SBCS) (Chr$(32))。在 DBCS中,空白的实际值会随国家/地区而不同。

说明

在把 ANSI 格式的 Byte 数组转换为字符串时,您应该使用 StrConv 函数。当您转换 Unicode 格式的这种数组时,使用赋值语句。

特殊举例1:

Option Explicit

Private Sub Command1_Click()
Dim b() As Byte
Dim s As String
s = "aaa;ss;111;美丽的误会"
Debug.Print s
b = StrConv(s, vbFromUnicode) ' 字符串转成数组
s = StrConv(b, vbUnicode) ' 数组转成字符串
Debug.Print s
End Sub

特殊举例2:

Option Explicit

Private Sub Command2_Click()
Dim b() As Byte
Dim s As String
s = "aaa;ss;111;中国"
Debug.Print s
b = StrConv(s, vbFromUnicode) ' 字符串转成数组
s = StrConv(b, vbUnicode) ' 数组转成字符串
Debug.Print s
End Sub

Windows系统对字符采用了DBCS编码,它是一套单字节和双字节的混合编码,即西文与ASCII编码一样,是单字节;中文则以两字节编码。(注意,这是以字节为准的。计算其字符串长度只能用LenB(),因为LenB()是计算字节数的。)

VB中采用的是Unicode(国际标准化组织字符(ISO)标准)来存储和操作字符串。它是全部用两个字节表示一个字符的字符集。

而StrConv()函数的作用就是作为Unicode与DBCS之间的转换。

---
StrConv(paraStr,vbFromUnicode) 就是将paraStr字符串由Unicode码转为DBCS码

---

如果要将DBCS转为Unicode则是这个形式StrConv(Str,vbUnicode)。

---

LenB(StrConv(paraStr,vbFromUnicode))就是先将Unicode码的paraStr字符串转为DBCS码再计算长度,而DBCS码的特性就是“英文算一个,中文算两个”,嘿嘿......

=======================

Option Explicit
Dim str1 As String, str2 As String, str3 As String, i As Long

Private Sub Command1_Click()
str1 = "美丽的误会。aaafssuck老师"
Debug.Print StrConv(str1, vbFromUnicode) '转为DBCS编码就是英文一个占1Byte,汉字占2个byte,29位一共
Debug.Print LenB(StrConv(str1, vbFromUnicode))
Debug.Print StrConv(StrConv(str1, vbFromUnicode), vbUnicode) '转为Vb版的Unicode,统统算两位。为什么这么写呢?防止重复转换,以前就就死在这个地方了。
Debug.Print LenB(StrConv(StrConv(str1, vbFromUnicode), vbUnicode))
Debug.Print LenB(StrConv(StrConv(StrConv(str1, vbFromUnicode), vbUnicode), vbFromUnicode)) '再次转DBCS编码,再看还是29位
MsgBox StrConv(StrConv(str1, vbFromUnicode), vbUnicode)
End Sub

摘自:网络整理

相关函数文章参考:


※VB 获取Textbox文本框中的行数函数

【VB】StrConv函数.

VB获取windows各常用目录的函数(模块)

VB:常用内部函数大全,你会了几个呢?

VB后台获得按键,并执行自己的函数(非钩子及热键)

※利用VB函数Dir()实现递归搜索目

※巧用SendMessage函数扩展Treeview功能

※比CopyMemory还要快的函数SuperCopyMemory

※VB利用API函数来处理文件

※利用VB函数Dir()实现递归搜索目录

※利用API函数计算程序运行时间VB

※利用VB函数Dir()实现递归搜索目录

※VB Environ系统环境变量函数大全

※VB 创建快捷方式函数(可带参数)


更多精彩>>>

【VB】StrConv函数.相关推荐

  1. [vb]SendMessageA函数

    功能强大的SendMessage函数 Windows API(应用程序接口)是Windows系列软件为程序开发人员提供的火力强大的"武器库",在这个武器库中,有很多极具威力的武器, ...

  2. c语言strlren函数的原代码,VB常用函数

    现在的编程软件像VB,C++等,大多自带功能很强的函数库,可以很省力得完成各种功能.很多时候,想不起来实现某个功能的函数或函数格式,导致编程大费周折.作为一个编程人员,我对此深有体会.因此,特地准备了 ...

  3. VB CreateObject函数

    创建并返回一个对 ActiveX 对象的引用. 语法 语法语法 语法 CreateObject( CreateObject(CreateObject( CreateObject(class,[serv ...

  4. 计算机vb常用计算公式,计算机等级考试二级VB常用函数解析

    p=ABS(X):取X的绝对值. p=Log(X):求X的自然对数. Y=Sgn(X):符号函数. 说明: X>0时Y=1;X=0时 Y=0;X<0 时Y=-1. 例: Response. ...

  5. c语言中菲薄拉次数列,在VB子函数如何写出菲薄拉起数列

    VB编制角度(度,分,秒)转为弧度的子函数 PublicFunctionRAD(ByValDEGREEAsString)AsDoubleRem具有测试DEGREE的前面是否带有"+" ...

  6. 计算机vb输入框函数,VB数据输入函数inputbox

    有时需要在程序运行后,给变量输入数据,VB提供了数据输人函数. | 格式:InputBox(prompt[,title][,default][,xpos,ypos][,helpfile,context ...

  7. VB MsgBox 函数 了解一下

    了解具体函数 推荐网址 点击打开链接 MsgBox是Visual Basic和VBS中的一个函数,功能是弹出一个对话框,等待用户单击按钮,并返回一个Integer值表示用户单击了哪一个按钮. MsgB ...

  8. [黑科技] WPS通过VB宏函数实现自编号功能

    这篇文章主要是作为李老师<算法设计与分析>助教课程中,与她交流,学到的一些基础知识.它主要是讲述Word通过宏函数设置一些操作,比如在Word全文中替换一些符号:再如对Word上角表进行编 ...

  9. VB execl函数 word文档 KBS

    文章目录 1. VB 1.1 程序结构 1.2 基本语法 1.3 数据类型 1.4 变量 1.4.1 变量声明 1.5 常量和枚举 1.5.1 声明常量 1.5.2 声明枚举 1.6 数据库 2. K ...

最新文章

  1. c++ 中 virtual / 纯虚函数(析构函数)测试
  2. Centos7.2搭建Openstack的Swift组件,查看状态:No such file or directory
  3. 语言for循环联程_Lua循环
  4. ssm整合之四 分页
  5. matlab平面抛射方程,MATLAB 数学实验 第七章 微分方程与计算机模拟 PPT注记
  6. ResourceBundle的路径问题
  7. kafka php 0.8,php5.6 centos7 kafka0.8.1
  8. win10如何固定ip地址
  9. 港股历史行情数据 API 接口
  10. python为什么是蛇的天敌_青蛙和蛇一直是天敌,只知道蛇会吃青蛙,你知不知道青蛙也吃蛇...
  11. OpenCV 5种图像滤波辨析:方框、均值、高斯、中值、双边
  12. 虚拟主播甜妹小给给戏腔演绎国风佳作,引爆抖音直播浪潮
  13. pip下载镜像源汇总
  14. Linux 修改虚拟机IP地址
  15. 51单片机汇编入门基础代码-流水灯
  16. 世博版新君威提车作业
  17. 把树莓派变身无线AP
  18. 判断网络问题的几种方法
  19. 怎样持续不断的学习~~
  20. 抄小米策略,纽曼你成吗?

热门文章

  1. 什么是 DNS 劫持、投毒、解析?看这文就懂了!
  2. 程序媛报告:调查了 12,000 名女性开发者发现,女性比男性更懂 Java!
  3. 郭台铭“炮轰”微软;腾讯应用宝全面封禁多闪;波音更新飞行软件 | 极客头条...
  4. Win10 PC 能打电话了?腾讯追讨前员工 1940 万;淘宝进军 MR 购物 | 极客头条
  5. 010.第一个回声服务器可能遇到的问题——connect函数
  6. 已收藏!java自学网址
  7. Spring的XML解析原理,java软件开发面试常见问题
  8. 老计算机教师,老教师能用好信息技术吗?
  9. 关于php车服务论文,「PHP」行车服务app后端代码简析
  10. oracle如何杀掉表死锁,oracle杀死死锁的方法