ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 174868|回复: 19

vba 将数字转换成字符串的函数是哪个呢

[复制链接]

TA的精华主题

TA的得分主题

发表于 2008-10-15 15:39 | 显示全部楼层 |阅读模式

vba编程中,将数字转换成字符串的函数是哪个呢?

哪里能找到比较全面的vba函数介绍呢?

多谢

TA的精华主题

TA的得分主题

发表于 2008-10-15 15:50 | 显示全部楼层

cstr吧

介绍函数的话函数版块应该有的

TA的精华主题

TA的得分主题

发表于 2008-10-15 15:53 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
QUOTE:
以下是引用nacky在2008-10-15 15:39:00的发言:

vba编程中,将数字转换成字符串的函数是哪个呢?

哪里能找到比较全面的vba函数介绍呢?

多谢

如果是单纯的转换,可以这样 ""& I,这里的I代指数字,当然也有相应的函数:Str( I )

TA的精华主题

TA的得分主题

发表于 2008-10-15 16:11 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

型態轉換函數

      

這些函數可強制一個運算式轉成特定的資料型態

語法

CBool(expression)

CByte(expression)

CCur(expression)

CDate(expression)

CDbl(expression)

CDec(expression)

CInt(expression)

CLng(expression)

CSng(expression)

CStr(expression)

CVar(expression)

CStr(expression)

expression 引數為任何字串運算式數值運算式

傳回型態

下列顯示函數對應的傳回型態:

函數傳回型態expression 引數範圍
CBoolBoolean任何可使用的字串或數值運算式。
CByteByte0 至 255。
CCurCurrency-922,337,203,685,477.5808至922,337,203,685,477.5807。
CDateDate任何可使用的日期運算式
CDblDouble負數從 -1.79769313486231E308至-4.94065645841247E-324;正數從4.94065645841247E-324至1.79769313486232E308。
CDecDecimal+/-79,228,162,514,264,337,593,543,950,335,無小數位數。對於 28 位數的數值範圍則為
+/-7.9228162514264337593543950335;最小的可能非零值是 0.0000000000000000000000000001。
CIntInteger-32,768 至 32,767;小數部份將被轉換。
CLngLong-2,147,483,648 至 2,147,483,647;小數部份將被轉換。
CSngSingle負數為 -3.402823E38 至 -1.401298E-45;正數為 1.401298E-45 至 3.402823E38。
CStrString字串 CStr 傳回值是依據 express 引數。
CVarVariant若為數值,則範圍與Double 相同;若非數值,其範圍與 String 相同。

請注意

expression 超出此函數的資料型態允許的範圍,則會發生錯誤。

通常,您可以使用資料型態轉換函數,以特定的資料型態,取代預設的資料型態運算結果。例如,使用 CCur 來強制執行貨幣運算,無論是單精數、倍精數、或整數運算,都可以正常執行。

您最好使用資料型態轉換函數來取代 Val,以讓任何一個資料型態可轉換至其他語言版本。例如,當您使用 CCur,不同的小數點分隔符號、千分位分隔符號,和不同的貨幣選項,會依據您系統的地區設定來做適當的確認。.

當小數部分恰好為 0.5 時,Cint CLng 函數會將它轉換成最接近的偶數值。例如,0.5 轉換成 0、1.5 轉換成 2。Cint CLng 函數不同於 Fix Int 函數,Fix Int 會將小數部分去除,然後轉回整數值。

使用 IsDate 函數,可判斷 date 是否可以被轉換成日期或時間。CDate 可用來識別短式日期,轉換數字為日期時,整個數字部分將轉換成日期,數字中的小數部分將轉換為時間,自午夜起算。

CDate 是以您所在地的系統設定來決定日期的格式。若提供的格式為不可辨識的日期設定,則無法判斷日、月、年的順序。此外,含有星期字串的長日期格式也無法辨識。

CVDate 函數同樣也是用來與早期的 Visual Basic 版本相容。CVDate 函數的語法與 CDate 函數完全相同,不過,CVDate 是傳回 Variant,其次型態是Date ,而非真正的 Date 型態。因為現在已有 Date 型態,因此不再需要 CVDate。轉換一個運算式成為 Date,再指定它至一個 Variant,也可以達到相同的效果。您也可以使用這種技巧將其他資料型態轉換至對等的 Variant 次型態。

附註 CDec 函數不會傳回其他的資料型態,而會傳回一個 Variant,它的值會被轉換成一個 Decimal 次型態。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2008-10-15 16:12 | 显示全部楼层

Cstr() 与 Str() 都可以达到将数字转换成字符串的功能

但是Cstr() 与 Str() 返回的结果并不完全一致!

最大的不同是,返回之后的字符串的长度不一致,Str()会自动在最左边加一个符号位,而Cstr()不会自动加符号位,是原样返回!

在立即窗口中,试验一下:

? Str(10) & ":" & Len(Str(10))
 10:3'最左边有一个空位
? Str(-10) & ":" & Len(Str(-10))
-10:3
? CStr(10) & ":" & Len(CStr(10))
10:2
? CStr(-10) & ":" & Len(CStr(-10))
-10:3

TA的精华主题

TA的得分主题

发表于 2008-10-15 16:14 | 显示全部楼层

"" & 10 与 Cstr(10)功效一致


? "" & 10 & ":" & Len( "" & 10 )
10:2

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-10-15 23:18 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

非常感谢

TA的精华主题

TA的得分主题

发表于 2010-5-2 18:17 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

回复 5楼 zldccmx 的帖子

谢谢,非常好,解决问题了!

TA的精华主题

TA的得分主题

发表于 2010-5-4 15:04 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2010-5-4 15:06 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
a=val("1.00")
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-10 22:01 , Processed in 0.026582 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表