问个VB的菜鸟问题

bb6bb7 2005-07-18 03:55:57
如何将一个表中的一个元组(英文字母)的每个单词的首字母由小写变为大写
如:"wo shi cai niao"=>"Wo Shi Cai Niao"
...全文
151 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
DawnPine 2005-07-26
  • 打赏
  • 举报
回复
StrConv 函数


返回按指定类型转换的 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。当在不适用的国别使用常数 vbWide、vbNarrow、vbKatakana,和 vbHiragana 时,就会导致运行时错误。

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

说明

在把 ANSI 格式的 Byte 数组转换为字符串时,您应该使用 StrConv 函数。当您转换 Unicode 格式的这种数组时,使用赋值语句。
DawnPine 2005-07-26
  • 打赏
  • 举报
回复
可以用StrConv函数
例如:
StrConv("4/F, chuangye building, new and hi-tech devel. zone", vbProperCase)
返回:
4/f, Chuangye Building, New And Hi-tech Devel. Zone

注意,只有句首字母和空格后的字母会做大写, 其余全部小写.如4/F
sdrcxzy 2005-07-19
  • 打赏
  • 举报
回复
那你就找空格,每一个空格后面是字母(ascii值在A和z之间的)的大写就行了。这是它的规律,呵呵
bb6bb7 2005-07-19
  • 打赏
  • 举报
回复
Tanjiahe, jiangnan
4/f, chuangye building, new and hi-tech devel. zone
room 2002, no.5, lane 97, zhidan lu
109, fangzhi lu
longyan industrial zone, humen town
23, youju jie
大概就是这样的一列
bb6bb7 2005-07-19
  • 打赏
  • 举报
回复
不对,要处理的不是一个语句,是数据库中一个表中的一列中的所有语句,而且语句有字符也有数字和标点
guxingfeiyu 2005-07-18
  • 打赏
  • 举报
回复
Dim ssTmp As String
Dim i As Integer
Dim bFirst As Boolean
‘ssTmp是你要处理的语句
bFirst = True
For i = 0 To Len(ssTmp) - 1
If bFirst And Asc(Mid(ssTmp, i + 1, 1)) <> 32 Then
ssTmp = Left(ssTmp, i) + UCase(Mid(ssTmp, i + 1, 1)) + Right(ssTmp, Len(ssTmp) - i - 1)
bFirst = False
End If
If Mid(ssTmp, i + 1, 1) = " " Then
bFirst = True
End If
Next i
bb6bb7 2005-07-18
  • 打赏
  • 举报
回复
具体一些好吗?我明白要用UCase,可是具体的写不出来
threenewbee 2005-07-18
  • 打赏
  • 举报
回复
首字母的要自己写了
threenewbee 2005-07-18
  • 打赏
  • 举报
回复
VB的 UCase() 和 LCase() 函数实现大小写转换。

2,503

社区成员

发帖
与我相关
我的任务
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧