如何在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而是StringInteger