【问题标题】:VBA: How can I concatenate thisVBA:我怎样才能连接这个
【发布时间】:2020-07-10 00:49:27
【问题描述】:

我一直在做一个宏,当我必须在一个单元格中打印一堆信息(字符串和变量)时,它不会编译。那么语法如何呢?

Sub TEST()
  
  Dim str1, str2 As String
  st1 = "Hi"
  st2 = "are"

  MsgBox (& str1& & "como" & str2 & "you")

End Sub

【问题讨论】:

  • & 符号是一个连接符。 “我”和“你”的结果是“我”。另一方面,`& str1& & "como" 会导致编译错误,因为连接符比字符串多。每个&符号必须在两个字符串之间。没有&符号可以跟随另一个&符号。

标签: excel vba syntax


【解决方案1】:

在代码顶部使用Option Explicit。然后,如果变量未声明,您将收到警报。

您将变量 st1 声明为变体,将变量 st2 声明为字符串。 (如果你不在每个变量后面写“as string”,它就不是字符串。)

在 MsgBox 中,您使用两个不同的变量,str1str2

这些细节很重要。

当然,您在 MsgBox 中有太多的& 符号并且没有足够的空格字符。试试

Option Explicit
Sub TEST()
  
  Dim st1 As String, st2 As String
  st1 = "Hi"
  st2 = "are"
  MsgBox (st1 & " como " & st2 & " you")
  

End Sub

【讨论】:

  • 谢谢,strst 错误是我在此处粘贴代码时出现的。但是感谢“Option Explicit”的建议,我意识到“&”空格也很重要。
【解决方案2】:

首先,建议使用 Option Explicit,因为您使用的变量与 Dim 不同(例如,您声明“str1”但使用“st1”)。接下来, str1 被声明为一个变体,可能不是您想要的。试试:

Option Explicit

Sub TEST()
  
  Dim str1 As String
  Dim str2 As String
  
  str1 = "Hi"
  str2 = "are"

  MsgBox (str1 & "como" & str2 & "you")

End Sub

【讨论】:

  • 单词之间没有空格?
  • 你补充了什么我之前没有写的?
猜你喜欢
  • 2012-11-21
  • 2016-01-31
  • 1970-01-01
  • 2022-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-28
  • 1970-01-01
相关资源
最近更新 更多