如何在Excel VBA中将整数转换为string?
如何在Excel VBA中将integer
数值“45”转换为string
值“45”?
cstr(45)我认为你所需要的(转换string)
尝试CStr()函数
Dim myVal as String; Dim myNum as Integer; myVal = "My number is:" myVal = myVal & CStr(myNum);
大多数时候,你不需要“转换”; VBA会为你做安全的隐式types转换, 而不需要像CStr
这样的转换器。
下面的代码工作没有任何问题,因为variables是typesstring, 隐式types转换自动完成!
Dim myVal As String Dim myNum As Integer myVal = "My number is: " myVal = myVal & myNum
结果:
“我的号码是:0”
你甚至不需要那么花哨,这也适用:
Dim myString as String myString = 77
“77”
唯一需要转换的时候是variablesType不明确 (例如Type Variant或Cell的Value
(Variant))。
即使如此,如果您正在与另一个stringvariables或常量复合,您将不必使用CStr
函数。 喜欢这个:
Sheet1.Range("A1").Value = "My favorite number is " & 7
“我最喜欢的号码是7”
所以,实际上,唯一的情况是当你真的想把一个整数值存储到一个variables或Cell值中,而不是与另一个string混合(这是一个非常罕见的情况,我可能会添加):
Dim i as Integer i = 7 Sheet1.Range("A1").Value = i
7
Dim i as Integer i = 7 Sheet1.Range("A1").Value = CStr(i)
“7”
在我的情况下,找不到函数CString。 但是,向该值添加空string也是有效的。
Dim Test As Integer, Test2 As Variant Test = 10 Test2 = Test & "" //Test2 is now "10" not 10
如果您正在使用的string恰好是E01等hex数,那么即使您使用CStr函数,Excel也会将其转换为0,即使您首先将其存储在stringvariablestypes中。 解决这个问题的一个方法是在价值的开始处追加“。
例如,从Word表格中提取数值并将它们带到Excel中时:
strWr = "'" & WorksheetFunction.Clean(.cell(iRow, iCol).Range.Text)
没有声明variables的最简单的方法是使用types提示:
s$ = 123 ' s = "123" i% = "123" ' i = 123
这不会使用Option Explicit
编译。 types不会是Variant
而是String
和Integer