在VBA中连接字符串

时间:2011-10-12 17:08:02

标签: vba ms-access vb6 string-concatenation

我正在使用VBA维护一个用Microsoft Access编写的应用程序。

我正在浏览我的代码并且刚刚注意到我已经下意识地将字符串与加号(+)符号连接在一起而不是符号。我用VB6编写代码已经有几年了。这会导致任何问题吗?

一切似乎都很好,只需要几分钟就可以解决,我只是好奇我是否在技术上做错了什么。

3 个答案:

答案 0 :(得分:12)

&符显式是一个字符串操作,而加号是重载的:

Dim num1 As Integer
num1 = RandomNumberBetween(1, 9)

Dim num2 As Integer
num2 = RandomNumberBetween(1, 9)

Dim randomAge As String 'trying to get a random age between 11 and 99

' works
randomDate = "Your age is " & num1 & num2 

'broken
randomDate = "Your age is " + num1 + num2 

与数字一起使用时,加号将添加。

答案 1 :(得分:4)

一些例子,来自VBA即时窗口(第三和第四之间的区别特别令人烦恼):

Print "5" & 6
56

Print 5 & 6
56

Print "5" + 6
 11 

Print "5" + "6"
56 

Print "Five" & 6
Five6

Print "Five" + 6 'Type mismatch

Print "5" & Null
5

Print "5" + Null
Null

答案 2 :(得分:0)

这可能会导致问题。

如果使用加号或&符号来连接字符串值,则结果相同

如果使用加号将字符串与非字符串值连接,则会引发错误

如果您使用&符号vba将尝试在连接之前对字符串进行“字符串化”。

因此string_value + int_value + date_value会出错,string_value & int_value & date_value可以正常使用